解决ssh连接无法免密登陆
背景:dtdev进入需要输入密码,一开始以为是同事动过authorized_keys,把我的公钥移除了,问了同事说没动过,重启了服务器的ssh不行;重新生成新的公钥上传也不OK,密码又找不到。
其实我有猜测是上周MacOS升级到13所致,经人指点,说有可能是匹配算法有问题,让我执行看连接日志。
执行:ssh root@xxx.xx.xxx.xxx -vvv,经指点,看到图中这行:no mutual signature algorithm
从这篇文章可以看到:受影响的已知操作系统有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版本升级,为什么只有这个服务器被影响到了,其他服务器连接就没有问题,就很费解。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现