Ssh

身份驗證被拒絕:文件/var/git/.ssh/authorized_keys 的所有權或模式錯誤

  • March 10, 2020

編輯

此處公開的問題已解決(關於文件.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

引用自:https://unix.stackexchange.com/questions/205830