解决ssh连接无法免密登陆

背景:dtdev进入需要输入密码,一开始以为是同事动过authorized_keys,把我的公钥移除了,问了同事说没动过,重启了服务器的ssh不行;重新生成新的公钥上传也不OK,密码又找不到。

其实我有猜测是上周MacOS升级到13所致,经人指点,说有可能是匹配算法有问题,让我执行看连接日志。

执行:ssh root@xxx.xx.xxx.xxx -vvv,经指点,看到图中这行:no mutual signature algorithm

推荐阅读这篇文章:https://confluence.atlassian.com/bitbucketserverkb/ssh-rsa-key-rejected-with-message-no-mutual-signature-algorithm-1026057701.html

从这篇文章可以看到:受影响的已知操作系统有OpenSSH 8.8或者更高的版本,会禁用使用 SHA-1 哈希算法的 RSA 签名。执行ssh -V,可以看到我的OpenSSH版本为9,那可能确实是OpenSSH版本的原因吧。

原因:由于各种安全漏洞,RSA SHA-1 哈希算法正迅速在操作系统和 SSH 客户端中被弃用,其中许多技术现在完全拒绝使用该算法。

以下解决方案二选一:
1、重新启用RSA
在Mac目录/etc/ssh下找到ssh.config文件,新增一行:

PubkeyAcceptedKeyTypes +ssh-rsa

说明:可通过ssh -vvv前几行确定本机连接读取的是哪个配置文件。

2、使用ECDSA和ED25519算法重新生成密钥,即:

ssh-keygen -t ed25519 -C "your_email@example.com"

其他:
现在不明白的是,如果真的是因为MacOS升级到13导致OpenSSH版本升级,为什么只有这个服务器被影响到了,其他服务器连接就没有问题,就很费解。

posted @ 2022-11-23 15:50  TA写Java  阅读(779)  评论(0编辑  收藏  举报