配置服务器集群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 加密方式

参考链接

点赞 ( 0 )

1 条评论

  1. kevinfei

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

发表评论

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

插入图片
s
返回顶部