ฉันไม่เห็นตัวเลือกใด ๆ สำหรับ ssh-add ที่ช่วยให้คุณได้ผลลัพธ์ตามที่ต้องการ แต่มันง่ายมากที่จะหลีกเลี่ยงปัญหานี้เนื่องจากคุณกังวลกับกุญแจตัวหนึ่งโดยเฉพาะ
ก่อนอื่นดึงลายนิ้วมือสำหรับ special_key ของคุณ:
ssh-keygen -lf /path/to/special_key | awk '{print $2}'
สมมุติว่าลายนิ้วมือนี้ดูเหมือน 6d: 98: ed: 8c: 07: 07: fe: 57: bb: 19: 12: 89: 5a: c4: bf: 25
จากนั้นที่ด้านบนของสคริปต์ของคุณใช้ssh-add -l
เพื่อตรวจสอบว่ามีการโหลดคีย์นั้นหรือไม่ก่อนแจ้งให้เพิ่ม:
ssh-add -l |grep -q 6d:98:ed:8c:07:07:fe:57:bb:19:12:89:5a:c4:bf:25 || ssh-add /path/to/special_key
คุณสามารถพับทั้งหมดนี้เข้าด้วยกันเป็นหนึ่งบรรทัดหากคุณต้องการ:
ssh-add -l |grep -q `ssh-keygen -lf /path/to/special_key | awk '{print $2}'` || ssh-add /path/to/special_key