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 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
引用與參考:
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
ssh 免密碼登錄(設置後仍需輸密碼的原因及解決方法)