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

  

    

posted @ 2018-11-28 14:46  浅雨凉  阅读(2452)  评论(0编辑  收藏  举报