涉及系统范围

  • CentOS Stream 9
  • AlmaLinux 9
  • Rocky Linux 9
  • Red Hat Enterprise Linux 9
  • Fedora 33及以上

问题现象

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

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

问题原因

CentOS Stream 9系列系统在OS内部的crypto-policies策略默认为DEFAULT,在该策略模式下openssh-server禁用了ssh-rsa(rsa/SHA1)签名算法。由于FinalShell、nuoshell等部分SSH客户端软件默认仅支持使用ssh-rsa(rsa/SHA1)签名算法,不能兼容使用rsa-sha2-256(rsa/SHA256)或者rsa-sha2-512(rsa/SHA512),所以无法登录。

说明 您可以通过 update-crypto-policies --show命令查看当前系统的策略。

解决方案

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

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

方案二:使用其他SSH客户端进行登录,例如阿里云自带的Workbench。

方案三:运行以下命令,切换策略为LEGACY。

update-crypto-policies --set LEGACY
update-crypto-policies --show