首頁 > 軟體

CentOS下「ssh免密碼登入不生效」問題

2020-06-16 16:58:41

摘要

一般為了方便運維管理都會設定ssh免密登入,ssh免密登入實現也很方便。今天遇到一個完成了設定了卻不能生效的問題。

思考

遇到這個問題一般有以下幾點:

  • authorized_keys檔案是否啟用
  • .ssh 和 authorized_keys 檔案許可權問題

排查

檢查AuthorizedKeysFile設定是否啟用authorized_keys

root@pts/1 $ cat /etc/ssh/sshd_config |egrep AuthorizedKeysFile
AuthorizedKeysFile    .ssh/authorized_keys

沒有問題,繼續檢查.ssh (700) 和 authorized_keys(644) 許可權

root@pts/1 $ getfacl /root/.ssh/
getfacl: Removing leading '/' from absolute path names
# file: root/.ssh/
# owner: root
# group: root
user::rwx
group::---
other::---

root@pts/1 $ getfacl /root/.ssh/authorized_keys
getfacl: Removing leading '/' from absolute path names
# file: root/.ssh/authorized_keys
# owner: root
# group: root
user::rw-
group::---
other::---

authorized_keys 許可權不對,修改一下chmod 644 authorized_keys

再次嘗試結果發現還是不行。但是該設定的許可權都設定了。既然.ssh目錄和其下檔案的許可權都OK了,那就檢查下其父目錄的許可權,也就是這裡的/root的許可權

root@pts/1 $ getfacl /root/
getfacl: Removing leading '/' from absolute path names
# file: root/
# owner: ftpuser
# group: ftpuser
user::r-x
group::r-x
other::---

發現這裡/root 的屬主都發生了變化。為了不影響別的業務情況,保留這裡的ftpuser許可權,利用setfacl新增特殊ACL許可權

root@pts/1 $ chown -R root:root  /root/
root@pts/1 $ setfacl -m u:ftpuser:rwx /root/

root@pts/1 $ getfacl /root/
getfacl: Removing leading '/' from absolute path names
# file: root/
# owner: root
# group: root
user::rwx
user:ftpuser:rwx        #effective:r-x
group::r-x
mask::r-x
other::r-x

附加

  • 許可權問題

    • /root 775
    • /root/.ssh 700
    • /root/.ssh/authorized_keys 644
  • 開啟檔案AuthorizedKeysFile .ssh/authorized_keys

下面關於SSH相關的文章您也可能喜歡,不妨參考下:

叢集環境SSH免密碼登入設定  http://www.linuxidc.com/Linux/2017-03/141296.htm

Linux基礎教學:設定SSH免密碼登陸 http://www.linuxidc.com/Linux/2017-07/145847.htm

遠端SSH連線服務與基本排錯  http://www.linuxidc.com/Linux/2017-05/143738.htm

使用SSH公鑰金鑰自動登陸Linux伺服器 http://www.linuxidc.com/Linux/2017-02/140642.htm

設定SSH免密碼登入  http://www.linuxidc.com/Linux/2017-08/146213.htm

開啟SSH服務讓Android手機遠端存取 Ubuntu 14.04  http://www.linuxidc.com/Linux/2014-09/106809.htm

SSH非互動式密碼授權遠端執行指令碼  http://www.linuxidc.com/Linux/2017-04/143180.htm

SSH通過金鑰登陸 http://www.linuxidc.com/Linux/2017-06/144997.htm

Ubuntu 安裝設定SSH(ssh: connect to host localhost port 22: Connection refused問題的解決)  http://www.linuxidc.com/Linux/2015-01/112045.htm

CentOS SSH提示:connect to host centos-py port 22: Connection refused  http://www.linuxidc.com/Linux/2017-11/148586.htm

Linux上實現SSH免密碼登陸遠端伺服器  http://www.linuxidc.com/Linux/2017-05/144165.htm

本文永久更新連結地址http://www.linuxidc.com/Linux/2017-12/149573.htm


IT145.com E-mail:sddin#qq.com