git添加公钥后报错sign_and_send_pubkey: signing failed: agent refused operation
程序员文章站
2022-05-07 13:53:19
在服务器添加完公钥后报错 sign_and_send_pubkey: signing failed: agent refused operation 解决方案: eval "$(ssh-agent -s)" ssh-add 补充: linux shell中的eval 语法:eval cmdLine ......
在服务器添加完公钥后报错
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