ปิดเสียง ssh-add


12

ฉันมี cronjob ที่ทำงานบางอย่างและในตอนต้นของสคริปต์มันทำงานคือการเรียก ssh-add (มันไม่ได้ทำงานในฐานะผู้ใช้ที่มีรหัสที่เหมาะสมดังนั้นจึงจำเป็นต้องเพิ่มและในอนาคตอาจใช้ ปรับใช้รหัสที่กำหนดไว้ในการควบคุมเวอร์ชัน) ดูเหมือนว่าจะเป็นเช่นนี้:

ssh-agent bash -c "ssh-add /home/tomjn/.ssh/id_rsa; etc... "

ฉันต้องการที่จะเงียบมันเป็น cronjob นี้ทำงานเป็นประจำและฉันมีอีเมลจำนวนมากในกล่องจดหมายของฉันที่ไร้ประโยชน์อย่างสมบูรณ์กับฉันโดยระบุว่าใช่มีการเพิ่มรหัส ฉันต้องการเฉพาะอีเมลเมื่อมีสิ่งผิดปกติเช่นการเชื่อมต่อระยะไกลแบบ git และอื่น ๆ ที่เกิดขึ้น

ดังนั้น TLDR ฉันเห็นสิ่งนี้ต่อไป:

เพิ่มตัวตนแล้ว: /home/tomjn/.ssh/id_rsa (/home/tomjn/.ssh/id_rsa)

ฉันจะปิดมันได้อย่างไร

ฉันพยายามทำสิ่งต่าง ๆ เช่น:

ssh-add /home/tomjn/.ssh/id_rsa > /dev/null

แต่จะไม่มีประโยชน์ หน้าคนไม่ได้ระบุว่ามี--quietพารามิเตอร์มีอย่างอื่นที่ฉันสามารถทำได้เพื่อเงียบเอาท์พุท?

คำตอบ:


18

เอาต์พุตของssh-addคำสั่งอยู่บน STDERR คุณต้องเปลี่ยนเส้นทาง STDERR ไปยัง / dev / null เพื่อหยุดการแสดงผล:

mtak@frisbee:~$ ssh-add .ssh/id_rsa 2>/dev/null
mtak@frisbee:~$ 

หรือมิฉะนั้นระงับเอาต์พุตทั้งหมดโดยสิ้นสุดคำสั่ง >/dev/null 2>&1


2
ธงแบบเงียบจะถูกทำให้เป็นเม็ดเล็กอย่างละเอียดยิ่งขึ้นเนื่องจากจะยอมให้การดำเนินการปกติเงียบลงในขณะที่ยอมให้มีข้อผิดพลาด (เช่นไม่พบคีย์หรืออ่านไม่ได้) ดูอย่างรวดเร็วที่github.com/openssh/openssh-portable/blob/master/ssh-add.cยืนยันว่าไม่มีตัวเลือกในซอร์สโค้ด ตัวเลือกอื่นมีไว้เพื่อกรองข้อความ "เพิ่ม" โดยเฉพาะ แต่โดยทั่วไปแล้วสิ่งนี้จะรบกวนการจัดการข้อผิดพลาด (ถ้าคุณสนใจการset -euตรวจสติแบบรันไทม์) ไม่มีคำใบ้ว่าทั้งหมดนี้มีความสำคัญที่นี่ดังนั้นเพียงแค่เปลี่ยนเส้นทาง stderr ควรจะเพียงพอ
Stéphane Gourichon

4
ตอนนี้มีตัวเลือกสำหรับสิ่งนี้ในหน้าคน นอกจากนี้รหัสที่คุณเชื่อมโยงในขณะนี้มีการกล่าวถึงธงนี้ในผลลัพธ์ความช่วยเหลือ ธงถูกเพิ่มเข้ามาในการกระทำนี้อย่างไรก็ตามฉันมีOpenSSH_7.6p1ใน mac ของฉันจาก homebrew (ล่าสุดใช้ได้) และการตั้งค่าสถานะนี้ดูเหมือนจะใช้งานไม่ได้ - -qตัวเลือกนี้มีอยู่ในวิธีใช้ แต่ไม่เปลี่ยนการเพิ่มคีย์เอาท์พุท
austinheiman

1
-qไม่ทำงานบน Kubuntu 18.04 เช่นกัน
systemovich
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.