2021-05-12 14:32:11
CentOS下「ssh免密碼登入不生效」問題
摘要
一般為了方便運維管理都會設定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
相關文章