当前位置: > Linux安全 >

如何获取并验证你的SSH密钥指纹

时间:2014-08-31 02:36来源:linux.it.net.cn 作者:it
有时你在登录到一台机器之后,发现SSH密钥改变了。这种情况可能是由于中间人攻击导致,但更多的情况下,是因为主机被重建,生成了新的SSH密钥(所以大家重建服务器的时候要养成保存恢复SSH密钥的好习惯)。

    那么,应该如何检查指纹?
    你可以直接通过网络从远程服务器上获取公共密钥:

    ssh-keyscan -p 22 -t rsa,dsa remote_host > /tmp/ssh_host_rsa_dsa_key.pub

    #使用你的主机名或IP地址替换remote_host字段然后你就可以通过这个文件生成指纹:

    ssh-keygen -l -f /tmp/ssh_host_rsa_dsa_key.pub不过,如果你的密钥在其他因素下改变,而你想要探索它改变的原因,那么网络的方式是不够的。想办法通过其他方式登录到真机上(比如通过管理控制台或KVM控制台),然后直接生成指纹:

    ssh-keygen -lf /etc/ssh/ssh_host_dsa_key

    ssh-keygen -lf /etc/ssh/ssh_host_rsa_key然后,与你通过网络得到的指纹进行对比。如果它们匹配,那么万事ok;如果不匹配,那么你可能有麻烦了。
    如果指纹不匹配,那么你应该先做一个针对ARP请求的网络扫描,看看有哪个IP地址回应了ARP请求。在ping的时候扫描一下看看有没有ARP请求。如果有两个主机,那么它们会为一个ARP条目而"互掐"起来,你应该能看到两个回应。
    一旦你知道了这个神秘主机的以太网地址,就可以通过路由(或交换机)接口上跟踪到ARP流量的去处。

    【有关SSH密钥指纹】

    为了避免中间人(man-in-the-middle)攻击,管理员在通过SSH远程连接主机的时候,SSH会生成主机指纹并请求保存。服务器的管理员可以发送密钥指纹给客户端,来让其在首次登陆时验证服务器的真实性。在之后的连接中,都会验证与保存的指纹是否匹配。如果不匹配,SSH会给出警告说明密钥变更。 (责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容