1. 程式人生 > >ssh 免密碼登入

ssh 免密碼登入

ssh免密碼登入的原理:

serverA 免密碼登入到 serverB

機器A 向 機器B 進行免密碼登陸

step1

 在機器A中生成 私鑰和公鑰:

ssh-keygen -t rsa

此時在 ~/.ssh/ 目錄下生成了公鑰(id_rsa.pub)和私鑰(id_rsa)

step2

把機器A的公鑰(id_rsa.pub)複製到機器B ~/.ssh/authorized_keys 檔案裡,兩種常用方法

方法1:

scp ~/.ssh/id_rsa.pub [email protected]:/home/B/id_rsa.pub

//此時scp需要輸入 登入機器B username使用者的密碼

//然後進入機器B內把 /home/B/id_rsa.pub 檔案內容加寫進 ~/.ssh/authorized_keys 檔案:

cat /home/B/id_rsa.pub /home/B/.ssh/authorized_keys

方法2:

//在機器A中使用 ssh-copy-id 把公鑰加寫到機器B的 ~/.ssh/authorized_keys 檔案

ssh-copy-id [email protected]

//執行後輸入機器B username使用者的密碼,效果和方法1一樣

step3

修改機器B ~/.ssh/authorized_keys 檔案的許可權:

chmod 600 ~/.ssh/authorized_keys

 此時如果機器B沒有~/.ssh 目錄需要手動建立

step4

此時機器A可以進行免驗證登入 機器B

ssh [email protected]

參閱網上很多方法後,發現步驟都差不多,但是卻屢屢失敗,設定完後仍然要輸入密碼,後面發現了是被登入機器的檔案許可權問題:

//使用者許可權

chmod 700 /home/username

//.ssh資料夾許可權

chmod 700 ~/.ssh/

// ~/.ssh/authorized_keys 檔案許可權

chmod 600 ~/.ssh/authorized_keys

還有可能這個檔案內容被註釋了(改成下圖的狀態):

vi /etc/ssh/sshd_config 

引用與參考:

http://www.cnblogs.com/kex1n/p/6017963.html

http://chenlb.iteye.com/blog/211809

https://jingyan.baidu.com/article/2fb0ba4043124a00f2ec5f0f.html

http://blog.csdn.net/xyl295528322/article/details/37762557