1. Home
  2. Docs
  3. 使用手册
  4. 密钥管理
  5. 内部密钥

内部密钥

内部密钥,即是WoTerm本身创建或导入的密钥。

在会话连接时,内部密钥将优先进行认证。

密钥导出后,可能会遇到密钥使用的问题,例如报如下错误:

sign_and_send_pubkey: signing failed: agent refused operation

请执行如下指令[ssh-add],它会将该证书加入至ssh-agent中。

[abc@centos ~]$ ssh-add
Identity added: /home/abc/.ssh/id_rsa (/home/abc/.ssh/id_rsa)   #提示Identity added,则表示加入成功。
Could not add identity "/home/abc/.ssh/id_ed25519": communication with agent failed    #这个证书加入失败。

[abc@centos~]$ ssh-add -l
1024 SHA256:f9ZbXwPYnRGEgT2ae/KWAvbRC+x5CewRG5y/4lorwH8 /home/abc/.ssh/id_rsa (RSA)


abc@ubuntu:~$ ssh-add
Identity added: /home/abc/.ssh/id_rsa (/home/abc/.ssh/id_rsa)
Identity added: /home/abc/.ssh/id_ed25519 (abc@ubuntu)

abc@ubuntu:~$ ssh-add -l
1024 SHA256:nY2crYq2fJyLjurXgMx6qDiolqnKw7Q8xf1cdoxJIMo /home/abc/.ssh/id_rsa (RSA)
256 SHA256:9jVcazsPfk8O+Ca2G4DBsjd6dQTMS36rIgwBY60njk8 abc@ubuntu (ED25519)

有时候,按以上方式配置后,仍然报相同的错误,则可能是受到gnome-keyring的ssh-agent影响,要按以下方式检查:

[abc@centos ~]$ echo ${SSH_AUTH_SOCK}
/run/user/1000/keyring/ssh     #gnome-keyring的ssh-agent启动模式,路径会包含keyring的关键字,而openssh的ssh-agent启动模式,其路径是从/tmp/*开始。

若要排除gnome-key的影响,可有以下两种方法。

第一种方法:在 vim ~/.bashrc文件尾部添加如下代码,可永久解决问题。

export SSH_AUTH_SOCK=0      #这样则可以永久屏蔽gnome-key的SOCK_AUTH_SOCK的干扰,此时执行ssh xxx@yyy.com时,则可以成功登录。

第二种方法:在 vim ~/.bashrc文件尾部添加如下代码,也可以永久解决问题。

eval "$(ssh-agent -s)" >> /dev/null
ssh-add >> /dev/null

个人建议使用第一种方法,因为ssh在远程登录时,它会优先访问ssh-agent,后遍历当前用户的.ssh路径,进行尝试登录。虽然ssh-agent不生效了,但.ssh路径可以生效。
此外第二种方法,会导致每启动一个终端将创建一个新的ssh-agent对象,这不是一个友好的方法。