升级OpenSSH后无法使用RSA密钥登录FreeBSD 14.0服务器的问题求助
升级OpenSSH后无法使用RSA密钥登录FreeBSD 14.0服务器的问题求助
嗨,我之前碰到过一模一样的问题,这事儿其实是新版本OpenSSH搞的鬼——FreeBSD 14.0自带的OpenSSH版本已经默认禁用了ssh-rsa这个签名算法,因为它基于SHA-1,安全性已经不达标了。但咱们之前的老RSA密钥大多用的就是这个算法,所以升级后就直接报错登不进去了。给你几个实用的解决办法,按需选就行:
临时应急登录(客户端侧操作)
要是你现在急着登进去,不用改任何配置,直接在SSH命令里追加参数允许ssh-rsa就行:ssh -o PubkeyAcceptedAlgorithms=+ssh-rsa your_username@your_freebsd_server_ip替换成你的用户名和服务器IP,就能临时绕过限制登录了。
服务器端永久解决(推荐方案)
等你登进去之后,咱们把服务器的SSH配置改了,永久开启ssh-rsa支持:- 编辑SSH服务配置文件:
vi /etc/ssh/sshd_config - 找到
PubkeyAcceptedAlgorithms这一行(如果没有就自己添加),改成下面这样:
这里的PubkeyAcceptedAlgorithms +ssh-rsa+号是在默认允许的算法基础上追加,不是替换所有算法,安全性更有保障。 - 重启SSH服务让配置生效:
service sshd restart
改完之后,所有客户端用原来的RSA密钥就能正常登录了。
- 编辑SSH服务配置文件:
客户端侧永久配置(不想动服务器的话)
要是你没权限改服务器配置,或者只想让自己的客户端适配这台服务器,可以修改本地的SSH配置:- 打开(或创建)客户端的SSH配置文件:
vi ~/.ssh/config - 添加针对这台FreeBSD服务器的配置:
Host your_freebsd_server_ip_or_hostname PubkeyAcceptedAlgorithms +ssh-rsa
保存后,下次直接用
ssh your_username@your_freebsd_server登录就自动生效了。- 打开(或创建)客户端的SSH配置文件:
另外提一句,如果之后要生成新密钥,建议用更安全的ed25519算法,生成命令是ssh-keygen -t ed25519,安全性更高,也不会碰到这类兼容性问题。
备注:内容来源于stack exchange,提问作者sophros
相关产品推荐
相关产品推荐

