1. 程式人生 > >git新增公鑰後報錯sign_and_send_pubkey: signing failed: agent refused operation

git新增公鑰後報錯sign_and_send_pubkey: signing failed: agent refused operation

在伺服器新增完公鑰後報錯

    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