最近看CSDN在做活动,每天发两篇文章可以给推广券,然后发多了还有累计奖励,趁着这个机会水几篇文章。
最近笔者更换了办公电脑,那么申请完网络权限后,发现了有一些机器免密登不上去了,但是网管很确定是把网络开了的。经过一番排查是ssh版本差异造成的故障,趁此机会记录一下。
一、【问题描述】
ssh到远端服务器,提示需要输入密码,但是很确定两端是做过免密了。
码有点多,总之就是连不上,提示输密码。
已经确认不是网络问题,确认不是机器名解析失败,确认ssh config 配置正确
二、【故障排查】
连接时加一个debug参数,看一下,就是这个-v
ssh remote -v
可看到打印出来一些蛛丝马迹
我本地配置的默认的RSA密钥,那么查找资料得知,低于2048位的RSA密钥被认为不够安全,那么我这个ssh client刚好是新版本,远端机器是古早版本ssh,出现这种情况倒算是合理
三、【解决方法】
1. 在连接时添加额外参数
ssh -o PubkeyAcceptedKeyTypes=ssh-rsa -i ./.ssh/id_rsa user@remotename
2. 配置 ~/.ssh/config 文件
host machine1
hostname 1.2.3.4
user root
Port 1234
IdentityFile ~/.ssh/id_rsa # 添加这一行就行,指向你的私钥位置,其余的自由发挥