很多人在连接上服务器时,看见关于SSH公匙指纹的警告不以为然,直接确认,殊不知,这中间藏有巨大的安全隐患。
确保公私匙体系安全的关键在于防范中间人攻击,在于对方给的公匙的是否正确。
你可以通过以下命令了解本机的OpenSSH公匙的指纹:
ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub #RSA Key 2048
ssh-keygen -lf /etc/ssh/ssh_host_dsa_key.pub #DSA key 1024
ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key.pub #ECDSA Key 256
但是有些主机商缺乏安全意识,所有的虚拟机共用一套模板,导致所有机器的Key都是一样的。这就意味着你手上的私匙可以解密他人的SSH通信。遇到这类主机,我们有必要重新生成OpenSSH密匙。(以下命令仅适用于Debian系Linux系统)
sudo /bin/rm -v /etc/ssh/ssh_host_*
sudo dpkg-reconfigure openssh-server
然后你就可以用之前提到过的命令查看新的密匙的指纹了。
在连接上别人的服务器时,你可以通过电话或实地交谈等方式获取正确的公匙指纹。至于购买的VPS等虚拟机,你可以先通过网页上的Console接入查看正确的公匙指纹,然后再通过本地连接。