![为什么 ssh 操作总是要求输入密码?(与 ed25519 有关)](https://linux22.com/image/1140894/%E4%B8%BA%E4%BB%80%E4%B9%88%20ssh%20%E6%93%8D%E4%BD%9C%E6%80%BB%E6%98%AF%E8%A6%81%E6%B1%82%E8%BE%93%E5%85%A5%E5%AF%86%E7%A0%81%EF%BC%9F%EF%BC%88%E4%B8%8E%20ed25519%20%E6%9C%89%E5%85%B3%EF%BC%89.png)
我刚刚更新了我的 ssh 密钥并添加了密码,但是它现在不断地困扰我,例如当我执行 git(或 mercurial hg)推送时。 ssh-agent
正在运行:
xxx 1303 1118 0 09:16 ? 00:00:00 /usr/bin/ssh-agent
/usr/bin/dbus-launch --exit-with-session
/usr/bin/im-launch mate-session
我试过ssh-add
:
> ssh-add
Identity added: /home/…/.ssh/id_rsa (/home/…/.ssh/id_rsa)
Enter passphrase for /home/…/.ssh/id_ed25519:
Could not add identity "/home/…/.ssh/id_ed25519":
communication with agent failed
缺少什么? 16.04 Ubuntu Mate,以防万一。
答案1
编辑2018:
这个问题在 gnome-keyring 中得到了解决包装 ssh-agent因此不再需要解决方法并且一切都应该可以立即使用。
旧系统的原始解决方法:
/run/user/1000/keyring/ssh
是 Gnome 密钥环(seahorse)的路径,不支持 Ed25519 密钥。有两种可能:
不要使用 ED25519 密钥,而要使用 RSA(这应该足够好了)
ssh-agent
在启动脚本中运行 real (~/.xsession
) 使用eval `ssh-agent`