ssh 忽略 ssh-agent

ssh 忽略 ssh-agent

我正在使用新系统并ssh忽略我的ssh-agent.请注意,我在其他地方这样做已经很多年了,这并不是什么新鲜事,我对此感到困惑。和bash

> echo $SSH_AGENT_PID
1234
> echo $SSH_AUTH_SOCK
/tmp/ssh-foo/agent.1234
> ps -p 1234
  PID TTY          TIME CMD
 1234 pts/12   00:00:01 ssh-agent

因此,ssh-agent 显然正在运行,并且适当的环境变量已就位。我还验证了套接字确实存在。

> ssh-add key
Enter passphrase for key: [done]
Identity successfully added.
> ssh-add -l
1024 SHA256:[blah] key

所以密钥已经添加了。但:

> ssh -i key me@there
Enter passphrase for key:

赦免?

/etc/ssh/ssh_config我与之前的系统进行了比较(!#$% 升级...),它们是相同的。根据发行版 (fedora 23) 软件包元信息,此版本是 openSSH 版本 7.1p1,我之前使用的安装版本不高于 6.6。

并非所有用户都存在这个问题,这让我相信这可能是一些新的安全功能。有谁知道怎么回事?

答案1

这是一个新功能,大概是 7.x 的新功能。它需要添加密钥类型才能/etc/ssh_config使用此选项:

PubkeyAcceptedKeyTypes +ssh-dss

默认情况下接受 RSA 密钥(请参阅 参考资料man ssh_config),这就是它在一种情况下有效但在另一种情况下无效的原因(作为 root 是一个转移注意力的因素,我已将其从问题中删除)。

再次注意,该选项不在我之前的手册页中ssh_config,也不在相应的手册页中(openssh v. 6.6)。

相关内容