linux ssh 免密碼連接

“`
前提:防火牆處於關閉狀態
查看防火牆狀態/關閉防火牆:
service iptables status 查看目前防火牆狀態,關閉用 service iptables stop
chkconfig –list | grep iptables 查看防火牆是否開機啓動,關閉用 chkconfig iptables off
A 機器執行 ssh-keygen -t rsa -P “” 將在 ~/.ssh/生成兩個文件 id_rsa,id_rsa.pub
可先在本機測試複製 id_rsa.pub 內容到 A 機器的 authorized_keys 文件中,沒有就創建 ,然後 ssh localhost
複製 A 機器的 id_rsa.pub內容 到 B 機器的 ~/.ssh/authorized_keys 文件中
設置 B 機器的 目錄和文件權限 .ssh 目錄爲 700 ,authorized_keys 文件權限爲 600
~ 說明: 如果 id_rsa.pub 放到了哪個主目錄的 .ssh 下的 authorized_keys 說明是對哪個用戶擁有免密碼訪問的權限
其中我碰到的問題
1.authorized_keys 寫錯了,結果一直需要密碼
2.權限沒有設置目錄爲 700,文件爲 600 ,只能本用戶查看和改寫
3.因爲是在一臺機器上設置,不同虛擬機,開始沒有設置主機名,導致不知道哪臺是哪個主機,是誰訪問誰,按照上面的設置是 A 對 B ~ 用戶 有免密碼訪問的權限

ssh 免密碼登錄原理,參考 url:http://blog.sina.com.cn/s/blog_66474b1601016ium.html
SSH採用的是”非對稱密鑰系統”,即耳熟能詳的公鑰私鑰加密系統,其安全驗證又分爲兩種級別。
前提說明:分公鑰和私鑰,公鑰加密的東西只能私鑰解,私鑰加密的東西只能公鑰解
1.基於口令的安全驗證
1)客戶端發起請求
2)遠程主機接收到用戶請求,把自己的公鑰發給客戶端
3)客戶端拿到服務器的公鑰後,用服務器的公鑰加密碼自己的一個通訊密鑰(不是公鑰,也不是私鑰),發給服務端
4)服務器收到加密後的通訊密鑰後用私鑰解密,然後讓客戶端輸入用戶名/密碼(這樣雙方都有了通訊密鑰,共同的小私密,別人不知道,即使別人竊聽了通訊過程,也無法解密.網上說的直接用雙方公鑰通信是錯的,那個計算量太大,不適合通信)
5)客戶端用通訊密鑰加密用戶名/密碼發給服務端
6)服務端解密後驗證,通過後就建立了連接
“`這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章