Shell-Script

如果密鑰已經存在,讓 ssh-add 保持安靜

  • January 21, 2022

我想放在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

引用自:https://unix.stackexchange.com/questions/132791