git添加公钥后报错sign_and_send_pubkey: signing failed: agent refused operation
在服务器添加完公钥后报错
sign_and_send_pubkey: signing failed: agent refused operation
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
解决方案:
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
更多精彩

