編集する
ここで公開されている問題が修正されました(
.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
問題は、ファイルとディレクトリの権限が要件を満たしていないことです。これはStrictModes
OpenSSHのyes
デフォルト値なので、変更しないでください。authorized_keys
権限0600
と.ssh
ディレクトリを0700
。
# chmod 0700 .../.ssh/
# chmod 0600 .../.ssh/authorized_keys
...
インストールによって異なる場合があります(たとえば、この質問ではですが、ユーザー/var/git/
にとってはです)/home/username/
。
答え2
厄介な理由で、この.ssh
ディレクトリはauthorized_keys
グループ書き込みが不可能でなければなりません。私の考えは、ユーザーが自分の承認を明示的に制御できる唯一の人でなければならないと思います。私はACLがこの問題を解決できると信じています。別の解決策は、StrictModes=no
sshdの設定ファイルで設定することです。しかし、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