我刚刚将我的 Ubuntu 16.10 安装升级到 Ubuntu 17.04,发现我不再有可用的 ssh 代理:
$ ssh-add my_rsa_key
Error connecting to agent: No such file or directory
$
经过最少的调查,我发现SSH_AUTH_SOCK
设置了一些似乎没有意义的的东西:
$ env | grep SSH
SSH_AUTH_SOCK=/run/user/1000/openssh_agent
SSH_AGENT_LAUNCHER=openssh
$
我不知道是什么原因造成的/run/user/1000/openssh_agent
,但它在我的系统上不起作用:
$ ls /run/user/1000/openssh_agent
ls: cannot access '/run/user/1000/openssh_agent': No such file or directory
在我将 ssh-agent 添加为“启动应用程序”后,它在 Ubuntu 16.10 上正常运行eval $(ssh-agent)
。它仍然存在,并且有一个 ssh-agent 在运行,但我似乎不再设置正确的代理环境变量。
答案1
这可能有帮助:
确保安装了合理最新版本的 OpenSSH SSH 代理。
将其添加到
~/.bashrc
:if ! pgrep -u "$USER" ssh-agent > /dev/null; then ssh-agent > ~/.ssh-agent-thing fi eval "$(cat ~/.ssh-agent-thing)" >& /dev/null
使用 GNOME Tweak Tool,转到“启动应用程序”并删除“密码和密钥”。
将其添加到
~/.pam_environment
:GSM_SKIP_SSH_AGENT_WORKAROUND DEFAULT=1
退出 GNOME 桌面环境(或者,如果需要,重新启动)。
执行此解决方法后,从 GNOME 终端运行
ssh-agent
或ssh-add
应该会导致调用 OpenSSH 的 SSH 代理。