何らかの理由でグループ書き込みを可能にするには、一部の特定のユーザーのホームディレクトリが必要です。ただし、SSHキーを使用してそのユーザーにログインしようとすると、sshdは認証を拒否します。必要ホームディレクトリは所有者だけが書くことができます。グループ書き込み可能または完全書き込み可能の場合、sshdは「認証が拒否されました:ディレクトリ/ home / userの所有権またはモードが無効です」という(悪名高い)メッセージで認証を拒否します。
sshdを再コンパイルする以外に他の方法はありますか?力ホームディレクトリがグループ書き込み可能であっても、鍵認証は許可されますか?おそらく、sshキーをユーザーのホームディレクトリ以外のディレクトリに入れ、sshdにそのキーを使用するように指示できますか?
答え1
私は解決策を直接見つけました。 :)実際には2つの異なる可能性があります。
1つ目は、ファイルのオプションを(デフォルトは)StrictModes
に設定することです。この設定を有効にすると、sshdはユーザーのホームディレクトリに対する権限を適用しません。このアプローチの欠点は、すべてのユーザーにグローバルであることです。no
yes
/etc/ssh/sshd_config
2番目の方法はAuthorizedKeysCommand
オプションを使用することです。特定のユーザー名(最初のパラメーターとしてスクリプトに渡される)に対してそのユーザーの認証キー・ファイルが見つかるたびに出力し、最初のパラメーターの他の値については単にスクリプトを作成する必要があります。単に何も出力しません。それは次のとおりです。
#!/bin/sh
if [ "$1" = "user" ]; then
cat /usr/local/etc/users_authorized_keys
fi
たとえば、スクリプトがデプロイされている場合は、ファイル/usr/local/libexec/listkeys
に次の行を入力する必要があります。/etc/ssh/sshd_config
AuthorizedKeysCommand /usr/local/libexec/listkeys
このソリューションを使用すると、ディレクトリ/home/user
へのグループ書き込みが可能になり、他のユーザーにはホームディレクトリの権限が引き続き適用されます。