内部密钥,即是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对象,这不是一个友好的方法。