我在AWS中构建了一个新的Ubuntu服务器。由于某种原因,我在其他Ubuntu服务器上工作的私钥没有为她工作。auth.log中的错误是
userauth_pubkey: key type ssh-rsa not in PubkeyAcceptedAlgorithms [preauth]
这只是Putty的一个问题,如果我尝试通过linux工作站登录,那么任何机器都不存在任何问题。
我看到的区别是新服务器是
运行OpenSSH_8.9p1 Ubuntu-3, OpenSSL 3.0.2 15 Mar 2022
的Ubuntu22.04.1 LTS
工作(旧)服务器是
运行OpenSSH_8.2p1 Ubuntu-4ubuntu0.4, OpenSSL 1.1.1f 31 Mar 2020
的Ubuntu20.04.4LTS(焦点Fossa)
这个版本的OpenSSH有什么变化吗?我怎么才能让腻子再工作一次?
发布于 2022-11-21 11:04:41
一个简单的解决方案。
在/etc/ssh/sshd_config
中添加这一行。
PubkeyAcceptedAlgorithms +ssh-rsa
然后,重新启动sshd
服务,使新设置生效。
$ sudo systemctl restart sshd
发布于 2022-10-22 17:17:44
SSH协议中有几种类型的密钥和签名算法。具有密钥类型ssh-rsa
的RSA密钥可用于使用SHA-1 (在这种情况下,签名类型为ssh-rsa
)、SHA-256 (具有签名类型rsa-sha2-256
)或SHA-512 (签名类型为rsa-sha2-512
)进行签名。
您在这里看到的是,您正在连接一个RSA密钥,并使用带有SHA-1的ssh-rsa
签名类型。不幸的是,SHA-1已不再安全,服务器正在告诉您它不会接受该签名类型。这是正确的做法,因为它避免了任何安全问题。
你可以用几种不同的方法解决这个问题。首先,您可以简单地升级PuTTY。最新的版本支持SHA-2签名算法(SHA-256和SHA-512),所以事情应该是正常的。您还可以生成一个不同的SSH密钥,例如,一个Ed25519密钥,这是Mozilla、GitHub和其他知名方最推荐的选项。请注意,PuTTY将这些作为EdDSA键进行分类,这是一个更通用的术语;您需要255或256位选项。
您还可以在服务器端调整PubkeyAcceptedKeyTypes
中的/etc/ssh/sshd_config
以包括ssh-rsa
(如果这样做,还应该在ssh -Q sig
中包括所有其他选项)。但是,这意味着您使用的是不安全的SHA-1签名,因此您可能希望选择其他选项之一。
发布于 2023-05-19 07:39:18
从评论上看,但不够明显,并且在与安全性进行权衡之前,最好检查其他简单的方法是否有效。
在服务器端进行任何更改之前,请尝试将putty更新为最新版本。在我的例子中,0.78版本解决了这个问题,没有在服务器端或键上进行任何更改。
我在腻子ChangeLog文件中找不到真正的原因。
https://unix.stackexchange.com/questions/721606
复制相似问题