更新 raspbian 及其所有库后,我注意到 SSH 有一些不同。当我删除家中的“已知主机”文件并通过 ssh 进入我的盒子时,它会像往常一样为我提供主机公钥,但这次我看到:
ecdsa-sha2-nistp256 SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
我发誓几个月前它总是给我一个 RSA 密钥类型。为什么会发生这种变化?服务器如何决定 /etc/ssh/ 中的哪个公钥指纹为用户提供连接?
ssh --version
在客户端 linux mint 18 机器输出OpenSSH_7.2p2 Ubuntu-4ubuntu1, OpenSSL 1.0.2g-fips 1 Mar 2016
和主机输出上OpenSSH_6.7p1 Raspbian-5+deb8u3, OpenSSL 1.0.1t 3 May 2016
答案1
客户端可以使用命令行 ssh_config
中的 HostKeyAlgorithms 选项指定其首选的主机密钥算法。在您的系统上查看您的 openssh 版本的默认 HostKeyAlgorithms 首选项。服务器将使用客户端列表中的第一个密钥类型~/.ssh/config
man ssh_config
和存在于服务器上。
如果您希望保留旧的 RSA 密钥质询,请-oHostKeyAlgorithms=ssh-rsa
在命令行中添加“”,或添加以下行
HostKeyAlgorithms ssh-rsa
到您的 ssh 配置文件。