解决ubuntu22.04的ssh问题--userauth_pubkey: key type ssh-rsa not in PubkeyAcceptedAlgorithms [preauth]

问题

在我新安装了一台ubuntu22.04的服务器时,配置远程服务器

正常情况下,只要把握本机的公钥写到被远程主机对应用户的 .ssh/authorized_keys 文件中就好了

但是,今天发现,虽然设置进去了,但是远程还是提示需要密码

但是并不是所有的主机是这样的,同样是ubuntu22.04的服务器还是能够免密进入的

没办法,只能查日志

查看syslog日志,没任何日志

接着找有没有认证相关的日志

发现有个 auth.log,日志

复现问题

发现了报错

Mar 29 17:46:22 ubuntu sshd[14792]: userauth_pubkey: key type ssh-rsa not in PubkeyAcceptedAlgorithms [preauth]
Mar 29 17:46:22 ubuntu sshd[14792]: Connection closed by authenticating user admin xxx.xxx.xxx.xxx port 38420 [preauth]

提示我们的 ssh-rsa 类型不在 PubkeyAcceptedAlgorithms

也就是不支持RSA算法的密钥访问

像这样的通常是发生在SSH服务器配置了更严格的安全策略,以禁用旧的、不安全的算法。

解决方法

修改SSH服务器的配置文件(通常是 /etc/ssh/sshd_config ),在 PubkeyAcceptedAlgorithms 选项中添加 ssh-rsa.

通常 /etc/ssh/sshd_config 文件中并没有 PubkeyAcceptedAlgorithms 选项,所以,只需要在文末追加配置就可以了

echo "PubkeyAcceptedAlgorithms +ssh-rsa" >> /etc/ssh/sshd_config

注意: 在添加之前,确保有 + 号在前面,这表示添加 ssh-rsa 到已有的列表中,而不是替换所有算法

然后重启服务就好了

systemctl restart sshd
posted @ 2024-03-29 17:52  厚礼蝎  阅读(1437)  评论(0)    收藏  举报