我正在使用新系统并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)。