######## 去掉SSH公钥检查的方法(交互式yes/no)########
SSH公钥检查是一个重要的安全机制,可以防范中间人劫持等黑客攻击。但是在特定情况下,严格的 SSH 公钥检查会破坏一些依赖SSH协议的自动化任务,就需要一种手段能够绕过SSH的公钥检查。
SSH连接远程主机时,会检查主机的公钥。如果是第一次连接该主机,会显示该主机的公钥摘要,弹出公钥确认的提示,提示用户是否信任该主机(Yes/no)。当选择Yes接受,就会将该主机的公钥追加到文件 ~/.ssh/known_hosts 中。当再次连接该主机时,就不会再提示该问题了。
SSH公钥检查有好处,但首次连接时会导致某些自动化任务中断,或者由于 ~/.ssh/known_hosts 文件内容清空,导致自动化任务中断。
去掉SSH公钥检查的方法:
1)SSH客户端的StrictHostKeyChecking 配置指令,可以实现当第一次连接服务器时,自动接受新的公钥。只需要修改 /etc/ssh/ssh_config 文件,包含下列语句:
StrictHostKeyChecking no
2)或者在ssh连接命令中使用-oStrictHostKeyChecking=no参数
[root@puppet ~]# ssh -p22222 172.168.1.33 -oStrictHostKeyChecking=no
或者
[root@puppet ~]# ssh -p22222 172.168.1.33 -oUserKnownHostsFile=/dev/null -oStrictHostKeyChecking=no
######## ssh 登陆忽略known_hosts文件 ########
使用ssh登录远程机器,同时会把ssh信息记录在本地的~/.ssh/known_hsots文件中。如果出现ssh冲突了,需要手动删除或修改known_hsots里面对应远程机器的ssh信息。那么如果忽略掉这个known_hosts的访问? 操作如下:
1)修改/etc/ssh/sshd_config 配置文件中的选项 IgnoreUserKnownHosts 改成 yes,重启sshd服务即可。
2)如果还是不行,就在/etc/ssh/sshd_config 配置文件中再加入一下几行,然后再重启sshd服务。