配置服务器集群ssh免登录时遇到的PubkeyAcceptedAlgorithms问题

遇到的第一个问题: 无法使用RSA密钥登录

在SSH协议中,ssh-rsa签名算法是SHA1的哈希算法和RSA公钥算法的结合使用。由于目前SHA1的哈希算法容易受到攻击,OpenSSH从8.7以后版本开始默认不支持ssh-rsa签名方案。

说明:

  1. 默认不支持ssh-rsa签名方案并不意味着停止使用RSA密钥,密钥可以通过多种算法进行签名,RSA密钥可以使用rsa-sha2-256rsa/SHA256)、rsa-sha2-512rsa/SHA512)等多种签名算法来进行签名,只有ssh-rsarsa/SHA1)签名算法被默认禁用。

问题现象:

使用FinalShell、nuoshell等部分SSH客户端软件通过RSA密钥远程连接ECS实例时,SSH客户端提示登录失败,sshd服务日志提示如下:

userauth_pubkey: key type ssh-rsa not in PubkeyAcceptedAlgorithms [preauth]

问题原因:

在最新版本的操作系统中,OpenSSH默认不再支持ssh-rsa(rsa/SHA1)签名算法,如果指定使用ssh-rsa(rsa/SHA1)签名算法将会登录失败。由于FinalShell、nuoshell等部分SSH客户端软件默认仅支持使用ssh-rsa(rsa/SHA1)签名算法,不能兼容使用rsa-sha2-256(rsa/SHA256)或者rsa-sha2-512(rsa/SHA512),所以无法登录。

解决方案:

您可以通过以下任一种方案解决该问题:

方案一:使用ECDSA或者DSA等其他加密方式。

方案二:使用其他SSH客户端进行登录,例如阿里云自带的Workbench。关于Workbench连接方式的更多信息,请参见使用Workbench连接实例。

方案三:运行以下命令,在sshd配置中允许使用ssh-rsa(rsa/SHA1)的签名算法。

  1. 由于ssh-rsarsa/SHA1)签名算法并不安全,请您谨慎操作。
  2. echo 'PubkeyAcceptedAlgorithms=+ssh-rsa' >> /etc/ssh/sshd_config
  3. systemctl restart sshd

最终优先方案

  1. 即然 rsa-sha1 不能用了, 那就要换一种更安全的方式吧.
  2. # ssh-keygen -t rsa -C "hugo@dev" # rsa-sha1 加密方式
  3. ssh-keygen -t ed25519 -C "hugo@dev" # ED25519 加密方式

参考链接:

https://help.gitee.com/enterprise/code-manage/%E6%9D%83%E9%99%90%E4%B8%8E%E8%AE%BE%E7%BD%AE/%E9%83%A8%E7%BD%B2%E5%85%AC%E9%92%A5%E7%AE%A1%E7%90%86/%E7%94%9F%E6%88%90%E6%88%96%E6%B7%BB%E5%8A%A0SSH%E5%85%AC%E9%92%A5

点赞 ( 0 )

0 条评论

发表评论

人生在世,错别字在所难免,无需纠正。

插入图片
s
返回顶部