禁用远程主机对SSH的公钥进行检查的方法
SH 公钥检查是一个重要的安全机制,可以防范中间人劫持等黑客攻击。但是在特定情况下,严格的 SSH 公钥检查会破坏一些依赖 SSH 协议的自动化任务,就需要一种手段能够绕过 SSH 的公钥检查。
首先看看什么是 SSH 公钥检查
SSH 连接远程主机时,会检查主机的公钥。如果是第一次该主机,会显示该主机的公钥摘要,提示用户是否信任该主机:
当选择接受,就会将该主机的公钥追加到文件 ~/.ssh/known_hosts 中。当再次连接该主机时,就不会再提示该问题了。 如果因为某种原因(服务器系统重装,服务器间IP地址交换,DHCP,虚拟机重建,中间人劫持),该IP地址的公钥改变了,当使用 SSH 连接的时候,会报错:
上面的警告信息说的是:
服务器公钥已经改变,新的公钥的摘要是:e9:0c:36:89:7f:3c:07:71:09:5a:9f:28:8c:44:e9:05.
该服务器原来的公钥记录在文件 ~/.ssh/known_hosts 中第 81 行。
如果确认不是中间人劫持,需要连接到该服务器,怎么办呢?最简单的就是用 vi 打开 ~/.ssh/known_hosts 文件,定位到 81 行,将该行删除。之后就可以使用 ssh 连接了。
如何让连接新主机时,不进行公钥确认?
在首次连接服务器时,会弹出公钥确认的提示。这会导致某些自动化任务,由于初次连接服务器而导致自动化任务中断。或者由于 ~/.ssh/known_hosts 文件内容清空,导致自动化任务中断。 SSH 客户端的 StrictHostKeyChecking 配置指令,可以实现当第一次连接服务器时,自动接受新的公钥。只需要修改 /etc/ssh/ssh_config 文件,包含下列语句:
或者在 ssh 命令行中用 -o 参数
如何防止远程主机公钥改变导致 SSH 连接失败
当确认中间人劫持攻击风险比较小的情况下,才可以使用下面的方法,禁用 SSH 远程主机的公钥检查。 SSH 客户端提供一个 UserKnownHostsFile 配置,允许指定不同的 known_hosts 文件。那么将 known_hosts 指向不同的文件,不就不会造成公钥冲突导致的中断了么?
看,提示信息由公钥改变中断警告,变成了首次连接的提示。 和之前提到的 StrictHostKeyChecking 配置配合使用,则不再有任何警告出现了:
相关文章
- 如何申请免费的云主机?云主机由于稳定性以及高性能,现在越来越受欢迎。现在市场上有各种各样的云主机,但有些网站是给提供免费试用的。下面分享腾讯云主机的申请流程,需2015-07-16
- 这篇文章主要介绍了从VirtualBox虚拟主机访问NAT客户机的方法,即启用端口通过SSH连接客户机的方法,需要的朋友可以参考下2015-07-07
- 这篇文章主要介绍了KVM虚拟机上关于宿主机的USB设备使用问题探究,作者在Windows7的宿主机和CentOS及Fedora的虚拟机上做出了尝试,需要的朋友可以参考下2015-06-30
- 在选购美国主机之前,需要对美国主机有一个全面的认识,先了解下很多站长选择美国主机的原因,美国主机有哪些优点?2015-03-17
亚马逊AWS Dell云 Windows Azure 阿里云ECS免费VPS主机试用
去年亚马逊AWS就已经开始酝酿着进驻国内,目前亚马逊AWS中国版已经推出,企业和开发者可开始在amazonaws.cn申请预览版,用户只要填写一个申请表就可以等待开通和使用了,现2015-03-06Conoha.jp日本免费试用VPS主机和VPS主机性能测试体验
Conoha.jp是日本GMO集团下的以提供VPS服务器为主的网络服务商,现在为大家提供免费一个月的日本VPS主机试用体验服务,1G内存2核100G硬盘,100M共享带宽,KVM架构,申请注册2015-01-26- 站长们该如何选择虚拟主机?当购买好域名后,站长们就该选择虚拟主机了,虚拟主机有国内和国外之分。下面小编就为大家带来国内国外虚拟主机各自优劣对比,一起来看看吧2015-12-18
最新评论