如何獲取并驗(yàn)證你的SSH密鑰指紋?
原創(chuàng)【51CTO精選譯文】有時(shí)你在登錄到一臺(tái)機(jī)器之后,發(fā)現(xiàn)SSH密鑰改變了。這種情況可能是由于中間人攻擊導(dǎo)致,但更多的情況下,是因?yàn)橹鳈C(jī)被重建,生成了新的SSH密鑰(所以大家重建服務(wù)器的時(shí)候要養(yǎng)成保存恢復(fù)SSH密鑰的好習(xí)慣)。
那么,應(yīng)該如何檢查指紋?
你可以直接通過網(wǎng)絡(luò)從遠(yuǎn)程服務(wù)器上獲取公共密鑰:
ssh-keyscan -p 22 -t rsa,dsa remote_host > /tmp/ssh_host_rsa_dsa_key.pub #使用你的主機(jī)名或IP地址替換remote_host字段
然后你就可以通過這個(gè)文件生成指紋:
ssh-keygen -l -f /tmp/ssh_host_rsa_dsa_key.pub
不過,如果你的密鑰在其他因素下改變,而你想要探索它改變的原因,那么網(wǎng)絡(luò)的方式是不夠的。想辦法通過其他方式登錄到真機(jī)上(比如通過管理控制臺(tái)或KVM控制臺(tái)),然后直接生成指紋:
ssh-keygen -lf /etc/ssh/ssh_host_dsa_key ssh-keygen -lf /etc/ssh/ssh_host_rsa_key
然后,與你通過網(wǎng)絡(luò)得到的指紋進(jìn)行對(duì)比。如果它們匹配,那么萬事ok;如果不匹配,那么你可能有麻煩了。
如果指紋不匹配,那么你應(yīng)該先做一個(gè)針對(duì)ARP請(qǐng)求的網(wǎng)絡(luò)掃描,看看有哪個(gè)IP地址回應(yīng)了ARP請(qǐng)求。在ping的時(shí)候掃描一下看看有沒有ARP請(qǐng)求。如果有兩個(gè)主機(jī),那么它們會(huì)為一個(gè)ARP條目而“互掐”起來,你應(yīng)該能看到兩個(gè)回應(yīng)。
一旦你知道了這個(gè)神秘主機(jī)的以太網(wǎng)地址,就可以通過路由(或交換機(jī))接口上跟蹤到ARP流量的去處。
原文:http://administratosphere.wordpress.com/2011/05/28/getting-and-verifying-ssh-fingerprints/
【有關(guān)SSH密鑰指紋】
為了避免中間人(man-in-the-middle)攻擊,管理員在通過SSH遠(yuǎn)程連接主機(jī)的時(shí)候,SSH會(huì)生成主機(jī)指紋并請(qǐng)求保存。服務(wù)器的管理員可以發(fā)送密鑰指紋給客戶端,來讓其在首次登陸時(shí)驗(yàn)證服務(wù)器的真實(shí)性。在之后的連接中,都會(huì)驗(yàn)證與保存的指紋是否匹配。如果不匹配,SSH會(huì)給出警告說明密鑰變更。
【編輯推薦】