今天在帮客户部署新服务器,想着用新不用旧,就用了 CentOS Stream 9 系统。
为了安全,不用密码登录,就在腾讯云上用的自动生成的 SSH 密钥。
进入系统第一件事当然是更新一波预装软件,不更没事,一更出了大问题。
我的 ssh 连不上服务器了!
重启服务器,重启 finalshell,无果。
查了日志:
代码语言:javascript复制cat /var/log/secure
发现有这么个错误:
代码语言:javascript复制userauth_pubkey: key type ssh-rsa not in PubkeyAcceptedAlgorithms [preauth]
百度不得其解,那就用了谷歌。
得知应该是 openssh 新版本导致的,增加了外国网友说的几个配置项重启了 sshd 后也不好使。
于是只能使出究极解决办法——重新生成能用的密钥
代码语言:javascript复制ssh-keygen -t ecdsa
生成完后导入了腾讯云的 SSH 密钥(文件在:~/.ssh)
这时候问题又来了,finalshell 提示:
代码语言:javascript复制暂不支持此私钥格式,请参考以下方法解决:
1.转换成PEM格式私钥
ssh-keygen -p -m PEM -f 私钥路径
2.生成PEM格式的私钥
生成时增加 -m PEM参数
ssh-keygen -m PEM -t rsa -C "注释"
于是我用这个把私钥转换了一下(注意会覆盖原文件,如有需要先备份)
代码语言:javascript复制ssh-keygen -p -m PEM -f id_ecdsa
用 finalshell 导入转换后的私钥,成功连接到了服务器!