概念:SSH採用的是」非對稱密鑰系統」,即公鑰私鑰加密系統,其安全驗證又分爲兩種級別。安全
1)基於口令的安全驗證:使用用戶名密碼進行聯機登陸,其整個過程大體以下: 1)用戶發起鏈接請求。 2)遠程主機收到用戶的登陸請求,把本身的公鑰發給用戶。 3)用戶接收遠程主機的公鑰,而後使用遠程主機的公鑰加密登陸密碼,緊接着將加密後的登陸密碼連同本身的公鑰一併發送給遠程主機。 4)遠程主機接收客戶端的公鑰及加密後的登陸密碼,用本身的私鑰解密收到的登陸密碼,若是密碼正確則容許登陸,到此爲止雙方彼此擁有了對方的公鑰,開始雙向加密解密。 注意: 1)當網絡中有另外一臺冒牌服務器B冒充遠程主機時,用戶的鏈接請求被服務器B攔截,服務器B將本身的公鑰發送給客戶端,客戶端就會將密碼加密後發送給冒牌服務器,冒牌服務器就能夠拿本身的私鑰獲取到密碼,這時客戶端的密碼就被盜取了。 2)當第一次鏈接遠程主機時,在第3步中,會提示您確認當前遠程主機的」公鑰指紋」,以保證遠程主機是正版的遠程主機,若是選擇繼續後就能夠輸入密碼進行登陸了,當遠程的主機接受之後,該臺服務器的公鑰就會保存到 ~/.ssh/known_hosts文件中。 2)基於密匙的安全驗證:免密碼登陸 1)在當前用戶A的家目錄下爲本身建立一對密匙,並把公匙放在須要登陸的服務器上。 說明:就是將用戶的公鑰放到服務器上你要登陸的用戶的家目錄下的.ssh/authorized_keys文件中(即:~/.ssh/authorized_keys) 2)用戶A發起鏈接請求:向服務器請求使用密匙進行安全驗證。 3)服務器收到請求以後,會在(服務器上)你要登陸的用戶的家目錄下尋找用戶A的公匙,而後與用戶A發送過來的公匙進行比較。 4)若是兩個公匙一致,服務器就用該公匙加密「質詢」並把它發送給用戶A。 說明:「質詢」:隨機生成的一個字符串(用來代替密碼)。 5)用戶A收到「質詢」以後用本身的私匙解密再把它發送給服務器。 6)服務器收到用戶A解密後的「質詢」,與以前隨機生成的「質詢」比較,若是一致,則容許登陸。 注意:與第一種級別相比,第二種級別不須要在網絡上傳送口令。
使用場景:服務器
1)rsync自動備份時免密碼登陸 2)集羣環境中主機間的互相通訊
相關配置項:網絡
SSHD服務的配置文件位於/etc/ssh/sshd_config PubkeyAuthentication # 是否容許使用密鑰驗證方式登陸 AuthorizedKeysFile # 容許登陸主機的公鑰存放文件,默認爲用戶家目錄下的 .ssh/authorized_keys
權限問題:併發
.ssh文件夾:chmod 700 .sshauthorized_keys文件:chmod 644 .ssh/authorized_keys