OPENSSH密鑰登陸-免密碼認證登陸(轉載)

OPENSSH密鑰免密碼認證登陸(轉載)

2014.3.17
by:byz033
假設 A=客戶機   B=服務器

要達到的目的:
A機器ssh登錄B機器無需輸入密碼;
加密方式選 rsa|dsa均可以,默認dsa;

二、具體操作流程
1、客戶機創建私鑰與公鑰。
linux下命令爲:ssh-keygen -t [rsa|dsa],將會生成密鑰文件和私鑰文件 id_rsa(密鑰),id_rsa.pub(公鑰)或id_dsa,id_dsa.pub

2、將生成的 .pub (公鑰)文件複製到B機器的root用戶目錄 /root/.ssh ; 並改名id_dsa.pub爲authorized_keys
linux下命令爲:mv id_dsa.pub /root/.ssh/authorized_keys


3、設置文件和目錄權限:只允許用戶所有者全部權限700。
linux下命令爲:
chmod 600 authorized_keys
chmod 700 -R /root/.ssh


三、雙向登陸的操作過程:未驗證

1、ssh-keygen做密碼驗證可以使在向對方機器上ssh ,scp不用使用密碼.具體方法如下:
2、兩個節點都執行操作:#ssh-keygen -t rsa
  然後全部回車,採用默認值.

3、這樣生成了一對密鑰,存放在用戶目錄的~/.ssh下。
將公鑰考到對方機器的用戶目錄下 ,並將其複製到~/.ssh/authorized_keys中(操作命令:#cat id_dsa.pub >> ~/.ssh/authorized_keys )。



四、總結

1、文件和目錄的權限千萬別設置成chmod 777.這個權限太大了,不安全,數字簽名也不支持。

2、生成的rsa/dsa簽名的公鑰是給對方機器使用的,這個公鑰內容還要拷貝到authorized_keys

3、linux之間的訪問直接 ssh 機器ip
4、某個機器生成自己的RSA或者DSA的數字簽名,將公鑰給目標機器,然後目標機器接收後設定相關權限(公鑰和authorized_keys權限),這個目標機就能被訪問了!

5、注意事項:
要保證.ssh和authorized_keys都只有用戶自己有寫權限。否則驗證無效。(今天就是遇到這個問題,找了好久問題所在),其實仔細想想,這樣做是爲了不會出現系統漏洞。


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