欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

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