如果你跟我一樣屬于服務(wù)器開發(fā)人員欺栗,那么對SSH協(xié)議肯定不會陌生屁药,上篇文章寫到了HTTPS中的SSL,是為了點(diǎn)對多的互聯(lián)網(wǎng)系統(tǒng)構(gòu)造而生的情屹,那么坪仇,問題來了,當(dāng)你訪問自己的服務(wù)器時屁商,你是怎么做的呢烟很?
使用證書?
太貴了蜡镶,雖然現(xiàn)在有免費(fèi)證書雾袱,難道你還不嫌證書安裝麻煩嗎?
裸連官还?
服務(wù)器的安全我想不必多說了吧芹橡,如果你在外面連接了黑客搭建的公開WiFi,他把你的賬號密碼截取到了望伦,我只能安慰你一句:everything will be ok.
芬蘭學(xué)者Tatu Ylonen設(shè)計(jì)了SSH協(xié)議林说,將登錄信息全部加密,成為互聯(lián)網(wǎng)安全的一個基本解決方案屯伞,迅速在全世界獲得推廣腿箩,目前已經(jīng)成為Linux系統(tǒng)的標(biāo)準(zhǔn)配置。
和HTTPS基本一樣
還記得https是怎么保證信息傳輸?shù)陌踩詥幔?/p>
1.小白把公鑰告訴小明
2.小明用自己的公鑰加密信件
3.小明用小白的公鑰加密自己的公鑰
4.小白用私鑰解密出小明的公鑰
5.小白用小明的公鑰解密信件
把小白替換為服務(wù)器劣摇,把小明替換成服務(wù)器操作人員(你)
這時候存在一個問題珠移,你不知道服務(wù)器給你發(fā)送的公鑰是不是真的,因?yàn)闆]有證書去保證公鑰的合法性
解決證書問題
如果經(jīng)常和服務(wù)器打交道末融,大家肯定不會對這張圖片陌生钧惧,簡單翻譯一下:
無法驗(yàn)證服務(wù)器的合法性,它的公鑰指紋是98:2e........(可以在服務(wù)器提供商那驗(yàn)證勾习,類似于下載東西的時候md5)浓瞪,你確定要繼續(xù)鏈接嗎?
當(dāng)技術(shù)人員確認(rèn)了這個公鑰的合法性巧婶,就可以登陸啦
當(dāng)遠(yuǎn)程主機(jī)的公鑰被接受以后乾颁,它就會被保存在文件$HOME/.ssh/known_hosts之中涂乌。下次再連接這臺主機(jī),系統(tǒng)就會認(rèn)出它的公鑰已經(jīng)保存在本地了钮孵,從而跳過警告部分骂倘,直接提示輸入密碼。
如果下次你再鏈接相同的服務(wù)器(被仿造的服務(wù)器)系統(tǒng)就會提示錯誤
每個SSH用戶都有自己的known_hosts文件巴席,此外系統(tǒng)也有一個這樣的文件历涝,通常是/etc/ssh/ssh_known_hosts,保存一些對所有用戶都可信賴的遠(yuǎn)程主機(jī)的公鑰漾唉。