公鑰認證的基本思想:安全
對信息的加密和解密採用不一樣的key,這對key分別稱做private key和public key,其中,public key存放在欲登陸的服務器上,而private key爲特定的客戶機所持有。當客戶機向服務器發出創建安全鏈接的請求時,首先發送本身的public key,若是這個public key是被服務器所容許的,服務器就發送一個通過public key加密的隨機數據給客戶機,這個數據只能經過private key解密,客戶機將解密後的信息發還給服務器,服務器驗證正確後即確認客戶機是可信任的,從而創建起一條安全的信息通道。經過這種方式,客戶機不須要向外發送本身的身份標誌「private key」便可達到校驗的目的,而且private key是不能經過public key反向推斷出來的。這避免了網絡竊聽可能形成的密碼泄露。客戶機須要當心的保存本身的private key,以避免被其餘人竊取,一旦這樣的事情發生,就須要各服務器更換受信的public key列表。服務器
配置ssh互信的步驟以下:網絡
1. 首先,在要配置互信的機器上,生成各自的通過認證的key文件;ssh
2. 其次,將全部的key文件彙總到一個總的認證文件中;加密
3. 將這個包含了全部互信機器認證key的認證文件,分發到各個機器中去;spa
4. 驗證互信。rest
在主機名爲dscn1,dscn2,dscn3上以相同的用戶hadmin建立ssh互信。it
1) 生成公鑰集羣
$> ssh-keygen –t rsa登錄
遇到提示均回車肯定
出現相似該圖的輸出時,公鑰生成成功
$> ssh dscn2
以主機名dscn2爲例,遠程登錄至集羣中另外一節點,重複上述步驟生成公鑰
$> exit 退出遠程登錄
重複執行至全部節點成功生成公鑰
2) 生成私鑰
如下操做都在同一節點中執行(以dscn1爲例)
$> cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 將dscn2的公鑰放入dscn1的私鑰中
$> chmod 600 ~/.ssh/authorized_keys 改變其權限
$> ssh dscn2 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
以主機名dscn2爲例,將dscn2的公鑰放入dscn1的私鑰中
重複執行,將全部節點的公鑰都添加至dscn1的私鑰中
3) 複製私鑰及known_hosts文件
如下操做都在同一節點中執行(以dscn1爲例)
$>ssh dscn1
將本機也加入到known_hosts文件中
$> scp ~/.ssh/authorized_keys dscn2:~/.ssh/authorized_keys
$> scp ~/.ssh/known_hosts dscn2:~/.ssh/known_hosts
將dscn1的私鑰及known_hosts文件拷貝至節點dscn2
重複執行,將dscn2的私鑰及known_hosts文件拷貝至其餘全部節點
4) 重啓服務並驗證
前面三個步驟在root和hadmin都執行過一次以後,此步驟只須要在root用戶下執行一次
$> systemctl restart sshd.service
$> ssh dscn2 service sshd restart
全部節點的sshd均須要重啓
嘗試:
$> ssh dscn2
無密碼便可直接登陸,則配置成功