ssh登陆之忽略known_hosts文件

在平时工作中,有时候需要SSH登陆到别的Linux主机上去,但有时候SSH登陆会被禁止,并弹出如下类似提示:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!Someone could be eavesdropping on you right now (man-in-the-middle attack)!It is also possible that the RSA host key has just been changed.The fingerprint for the RSA key sent by the remote host is36:68:a6:e6:43:34:6b:82:d7:f4:df:1f:c2:e7:37:cc.Please contact your system administrator.Add correct host key in /u/xlian008/.ssh/known_hosts to get rid of this message.Offending key in /u/xlian008/.ssh/known_hosts:2RSA host key for 135.1.35.130 has changed and you have requested strict checking.Host key verification failed.


比较奇怪,于是研究了一下。

ssh会把你每个你访问过计算机的公钥(public key)都记录在~/.ssh/known_hosts。当下次访问相同计算机时,OpenSSH会核对公钥。如果公钥不同,OpenSSH会发出警告, 避免你受到DNS Hijack之类的攻击。我在上面列出的情况,就是这种情况。

原因:一台主机上有多个Linux系统,会经常切换,那么这些系统使用同一ip,登录过一次后就会把ssh信息记录在本地的~/.ssh/known_hsots文件中,切换该系统后再用ssh访问这台主机就会出现冲突警告,需要手动删除修改known_hsots里面的内容。

有以下两个解决方案:
1. 手动删除修改known_hsots里面的内容;
2. 修改配置文件“~/.ssh/config”,加上这两行,重启服务器。
   StrictHostKeyChecking no
   UserKnownHostsFile /dev/null

优缺点:
1. 需要每次手动删除文件内容,一些自动化脚本的无法运行(在SSH登陆时失败),但是安全性高;
2. SSH登陆时会忽略known_hsots的访问,但是安全性低;

当使用Ansible时,可能会遇到这样的错误提示:“added 'ip' (ecdsa) to the list of known hosts”。这个错误提示表示Ansible试图将目标主机的IP地址添加到已知主机列表中。 这个错误通常是由于第一次连接到远程主机时引起的,Ansible将主机密钥添加到~/.ssh/known_hosts文件中。这是Ansible的正常行为,以确保安全连接和身份验证。 要解决这个问题,有以下几种方法: 1. 忽略已知主机检查:在执行Ansible命令时,可以使用`-k`参数或`--ask-pass`参数来忽略对已知主机的检查。例如,`ansible-playbook -i inventory.ini playbook.yaml -k`。这个方法虽然简单,但会牺牲一部分安全性。 2. 更新known_hosts文件:如果你确定目标主机是安全的,你可以手动更新`~/.ssh/known_hosts`文件,添加目标主机的IP地址和密钥。你可以使用SSH命令`ssh-keyscan`来获取主机密钥并添加到known_hosts文件中。例如,`ssh-keyscan -H ip >> ~/.ssh/known_hosts`。这样做的好处是避免了每次连接时的询问,但仍保持了一定的安全性。 3. 使用ssh-keygen重新生成密钥:如果你不确定目标主机的安全性,你可以尝试使用`ssh-keygen`命令生成新的公钥和私钥。然后,将新的公钥复制到目标主机的`~/.ssh/authorized_keys`文件中。这样可以确保安全连接和身份验证。 无论你选择哪种方法,记得在操作之前确保备份重要的配置文件和数据,以免意外损失。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值