ssh免密登錄

問題描述

今天配置SSH免密登陸時,使用 ssh-keygen 命令成功生成了公鑰和私鑰,而且也執行了 ssh-copy-id 機器地址將公鑰添加到了服務器的authorized_keys文件中。緊接着用 service sshd restart 命令重啓了SSH服務,但當執行 ssh 登陸命令時仍然須要密碼。 
這裏寫圖片描述安全

解決方案

1、查看系統安全日誌,定位問題

執行 sudo cat /var/log/secure 查看系統的安全日誌,而後再安全日誌中看到SSH登陸過程當中提示了以下錯誤:服務器

Authentication refused: bad ownership or modes for directory /home/skyler 
這裏寫圖片描述ssh

2、解決SSH Authentication Refused問題

從日誌中咱們已經分析出了錯誤的具體緣由,提示咱們 /home/skyler 目錄的屬主和權限配置不當。而後上網查找資料得知:SSH不但願home目錄和~/.ssh目錄對組有寫權限,因而執行如下命令進行更改:調試

chmod g-w /home/skylerrest

執行完成後,重啓SSH服務再次執行ssh 登陸時發現已經實現了免密登陸,問題解決: 
這裏寫圖片描述日誌

擴展說明

SSH進行認證的過程當中除了對用戶目錄有權限要求外,對 .ssh 文件夾和 authorized_keys 文件一樣也要限制,若是日誌中提示這兩個的問題,能夠經過以下方式進行修改:code

chmod 700 /home/skyler/.ssh 
chmod 600 /home/skyler/.ssh/authorized_keysblog

SSH登陸過程若是出現問題除了查看上述 /var/log/secure 文件外,還能夠經過在 ssh 命令後添加調試參數 -vvv 來查看調試信息(eg: ssh -vvv localhost 便會以調試模式來執行本次ssh命令),以此來更好的定位問題。圖片

相關文章
相關標籤/搜索