認証が拒否されました:/var/git/.ssh/authorized_keysファイルの所有権またはモードが無効です。

認証が拒否されました:/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ユーザーであることがわかるので、ホームでは/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所有者グループと同じです。ファイルを読むことができますが、秘密は何ですか?

答え1

問題は、ファイルとディレクトリの権限が要件を満たしていないことです。これはStrictModesOpenSSHのyesデフォルト値なので、変更しないでください。authorized_keys権限0600.sshディレクトリを0700

# chmod 0700 .../.ssh/
# chmod 0600 .../.ssh/authorized_keys

...インストールによって異なる場合があります(たとえば、この質問ではですが、ユーザー/var/git/にとってはです)/home/username/

答え2

厄介な理由で、この.sshディレクトリはauthorized_keysグループ書き込みが不可能でなければなりません。私の考えは、ユーザーが自分の承認を明示的に制御できる唯一の人でなければならないと思います。私はACLがこの問題を解決できると信じています。別の解決策は、StrictModes=nosshdの設定ファイルで設定することです。しかし、1人のユーザーにこれを行うのは危険すぎます。

PSあなたのls -l /var | grep gitアプローチはより簡潔ですls -ld /var/git

答え3

ディレクトリ$HOME/.sshモード〜しなければならない700でauthorized_keys しなければならない所有者だけが読み取ることができます(例:モード600):

chmod u=rwx,g=,o= /var/git/.ssh
chmod u=rw,g=,o= /var/git/.ssh/authorized_keys

秘密鍵の場合、〜しなければならない所有者だけが読み書きできます。

chmod u=rw,g=,o= /var/git/.ssh/id_?sa

関連情報