在服務器添加完公鑰后報錯
sign_and_send_pubkey: signing failed: agent refused operation
解決方案:
eval
"$(ssh-agent -s)"
ssh-add
補充:
linux shell中的eval 語法:eval cmdLine eval會對后面的cmdLine進行兩遍掃描,如果第一遍掃描后,cmdLine是個普通命令,則執行此命令;如果cmdLine中含有變量的間接引用,則保證間接引用的語義。 舉例如下: set 11 22 33 44 如果要輸出最近一個參數,即44,可以使用如下命令, echo $4 但是如果我們不知道有幾個參數的時候,要輸出最后一個參數,大家可能會想到使用$#來輸出最后一個參數, 如果使用命令: echo "\$$#" 則得到的結果是 $4,而不是我們想要的44。這里涉及到一個變量間接引用的問題,我們的本意是輸出 $4,默認情況下,命令后忽略變量間接引用的情況。 這時候,就可以使用eval命令。 eval echo "\$$#" 得到的結果為44
ssh-add 命令詳細介紹
語法
ssh-add [-cDdLlXx] [-t life] [file ...]
ssh-add -s pkcs11
ssh-add -e pkcs11
參數說明
-D :刪除ssh-agent中的所有密鑰;
-d :從ssh-agent中的刪除密鑰;
-e : pkcs11 :刪除 PKCS#11 共享庫 pkcs1 提供的鑰匙;
-s : pkcs11 :添加 PKCS#11 共享庫 pkcs1 提供的鑰匙;
-L :顯示 ssh-agent 中的公鑰;
-l :顯示 ssh-agent 中的密鑰;
-t : life:對加載的密鑰設置超時時間,超時 ssh-agent 將自動卸載密鑰;
-X :對 ssh-agent 進行解鎖;
-x :對 ssh-agent 進行加鎖;
示例
把專用密鑰添加到 ssh-agent 的高速緩存中
ssh-add /home/chen/.ssh/id_rsa
從ssh-agent中刪除密鑰
ssh-add -d /home/chen/.ssh/id_rsa.pub
查看ssh-agent中的密鑰
ssh-add -l
