Shell-Script
如果密鑰已經存在,讓 ssh-add 保持安靜
我想放在
ssh-add /path/to/special_key
腳本的頂部。這工作正常,但它總是提示輸入密碼。這很奇怪,也有點煩人,因為即使ssh-add -l
顯示已經添加了密鑰,它仍然要求輸入密碼。有沒有辦法告訴它:“添加此密鑰並詢問密碼是否尚未添加,否則什麼也不做”?
我沒有看到任何 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