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

  

    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM