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


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

serverA 免密碼登錄到 serverB

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

step1:

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

命令:ssh-keygen -t rsa,一路回車就行,如果需要passphrase密碼,自行輸入就行,一路回車passphrase密碼為空

此時在 ~/.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 

1 如果還是無法登陸,可能是Linux禁用了root賬戶ssh登陸,解決方法:

編輯配置文件

vim /etc/ssh/sshd_config

2 修改  PermitRootLogin  后面的  no 為 yes,並且去掉前面的注釋符,同時可以限制失敗次數
注意: 這個失敗次數是對所有用戶都起作用的。

#LoginGraceTime 2m
PermitRootLogin yes
#StrictModes yes
MaxAuthTries 3
#MaxSessions 10

3 重啟 sshd 服務:

systemctl restart sshd.service

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM