为什么ssh操作总是要求密码? (with ed25519)

我刚刚更新了我的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,万一重要。

编辑2018:

这是通过最近包装ssh-agent在gnome-keyring中解决的,因此不再需要变通办法,所有东西都应该开箱即用。

旧系统的原始解决方法:

/run/user/1000/keyring/ssh是Gnome密钥环(seahorse)的路径,它不支持Ed25519密钥。 有两种可能性:

  1. 不要使用ED25519密钥并使用RSA(应该足够好)

  2. 使用启动脚本( ~/.xsession )运行真正的ssh-agent

     eval `ssh-agent`