Ssh
身份驗證被拒絕:文件/var/git/.ssh/authorized_keys 的所有權或模式錯誤
編輯
此處公開的問題已解決(關於文件
.ssh
夾的文件模式。但是另一個問題仍然存在,所以我創建了一個新問題:>無法使用 SSH-RSA 密鑰登錄
我無法再為特定使用者連接 ssh-rsa 密鑰,但它仍然適用於其他使用者。
git
使用者定義如下:# cat /etc/passwd | grep git git:x:1002:1002:,,,:/var/git:/bin/bash
所以你注意到這是 git 使用者,因此它的 home 是
/var/git
,它不在/home
.現在,ssh 總是提示我輸入密碼:
$ ssh git@srv git@srv's password:
我檢查了日誌:
# tail -n 1 /var/log/auth.log [...] Authentication refused: bad ownership or modes for file /var/git/.ssh/authorized_keys
因此
authorized_keys
,某些所有權或模式配置錯誤。我不明白,因為這裡是這個文件的 conf:# ls -l /var/git/.ssh/ | grep auth -rw-rw-r-- 1 git git 394 mai 22 17:39 authorized_keys
這是(以防萬一……)父
.ssh
目錄:# ls -al /var/git/ | grep ssh drwxrwxr-x 2 git git 4096 mai 22 17:39 .ssh
和
$HOME
目錄:# ls -l /var/ | grep git drwxr-xr-x 7 git git 4096 mai 27 10:49 git
所以所有者總是
git
,就像所有者組一樣。而且文件是可讀的,那麼訣竅在哪裡?
問題是文件和目錄權限不符合要求
StrictModes
,在 OpenSSH 中是yes
預設的,不應更改。authorized_keys
嘗試將to0600
和.ssh
目錄的權限設置為0700
.# chmod 0700 .../.ssh/ # chmod 0600 .../.ssh/authorized_keys
請注意,這
...
將根據安裝而有所不同(例如,在這個問題中它是/var/git/
但對於使用者來說它將是/home/username/
.
出於偏執的原因,
.ssh
目錄authorized_keys
不能是組可寫的。我想這個想法是,使用者必須是唯一一個可以明確控制他/她的授權的人。我相信解決此問題的方法在於 ACL。另一個解決方法是StrictModes=no
在 sshd 的配置文件中設置。但是為了一個使用者而這樣做太危險了。PS你
ls -l /var | grep git
的做得更簡潔ls -ld /var/git