ssh 免密碼登錄(設置後仍需輸密碼的原因及解決方法)

這篇大部分是拷貝的。按操作步驟操作不行的最可能原因是:文件權限,不論是a機還是要訪問的b機的文件的權限都要改成對應的700,600;必須嚴格是這個權限,否則會出現設置免密fail的情況。

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 username@host:/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 username@host

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


step3:

修改機器B ~/.ssh/authorized_keys 文件的權限:

chmod 600 ~/.ssh/authorized_keys

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


step4:

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

ssh username@host


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

//用戶權限

chmod 700 /home/username

//.ssh文件夾權限

chmod 700 ~/.ssh/

// ~/.ssh/authorized_keys 文件權限

chmod 600 ~/.ssh/authorized_keys

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

vi /etc/ssh/sshd_config 

技術分享圖片

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