一、SSH概念(百度)
SSH 為 Secure Shell 的縮寫,由 IETF 的網絡小組(Network Working Group)所制定;SSH 為建立在應用層基礎上的安全協議。SSH 是目前較可靠,專為遠程登錄會話和其他網絡服務提供安全性的協議。利用 SSH 協議可以有效防止遠程管理過程中的信息泄露問題。SSH最初是UNIX系統上的一個程序,后來又迅速擴展到其他操作平台。SSH在正確使用時可彌補網絡中的漏洞。SSH客戶端適用於多種平台。幾乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可運行SSH。
SSH驗證:從客戶端來看,SSH提供兩種級別的安全驗證。
第一種級別(基於口令的安全驗證)
只要你知道自己帳號和口令,就可以登錄到遠程主機。所有傳輸的數據都會被加密,但是不能保證你正在連接的服務器就是你想連接的
服務器。可能會有別的服務器在冒充真正的服務器,也就是受到“中間人”這種方式的攻擊。
第二種級別(基於密匙的安全驗證)
需要依靠
密匙,也就是你必須為自己創建一對密匙,並把公用密匙放在需要訪問的服務器上。如果你要連接到SSH服務器上,客戶端軟件就會向服務器發出請求,請求用你的密匙進行安全驗證。服務器收到請求之后,先在該服務器上你的主目錄下尋找你的公用密匙,然后把它和你發送過來的公用密匙進行比較。如果兩個密匙一致,服務器就用公用密匙加密“質詢”(challenge)並把它發送給客戶端軟件。客戶端軟件收到“質詢”之后就可以用你的私人密匙解密再把它發送給服務器。
用這種方式,你必須知道自己密匙的
口令。但是,與第一種級別相比,第二種級別不需要在網絡上傳送口令。
二、SSH密鑰驗證的機制
三、SSH無密碼(密鑰驗證)登錄的配置
配置主機A免密登錄到主機B(方法一)
1.在主機A生產密鑰對: ssh-keygen -t rsa, 會在用戶主目錄下.ssh目錄下產生密鑰文件
2.拷貝主機A的公鑰到主機B: scp id_rsa.pub
3.將主機A的公鑰加到主機B的授權列表.ssh/authorized_keys(若不存在,手動創建): cat id_rsa.pub >> authorized_keys
4.授權列表authorized_keys的權限必須是600,chmod 600 authorized_keys
(方法二)
#進入到我的home目錄 cd ~/.ssh
ssh-keygen -t rsa (四個回車)
執行完這個命令后,會生成兩個文件id_rsa(私鑰)、id_rsa.pub(公鑰)
將公鑰拷貝到要免登陸的機器上: ssh-copy-id localhost