同じホームディレクトリを持つ複数の chroot されたユーザー用の authorized_keys

同じホームディレクトリを持つ複数の chroot されたユーザー用の authorized_keys

CentOS 6.9 を OpenSSH_5.3p1 で実行し、同じホーム ディレクトリ (htdocs にマウント) を持つ外部ユーザー用に chroot されたアカウントを作成しました。問題は、ファイルが.ssh/authorized_keys2最初のユーザーによって所有されていることです (これはすでに機能しています)。これを別のユーザーでも機能させるにはどうすればよいですか?

複数のファイル パスを使用して sshd_config に追加しようとしましたAuthorizedKeysFileが、エラーが発生しましたgarbage at end of line

AuthorizedKeysFile2 番目のユーザーの一致ブロックにin を追加しようとしましたsshd_configが、エラーが発生しました'AuthorizedKeysFile' is not allowed within a Match block

ホーム ディレクトリを変更すると、パスが開発用の実際のパスと異なるため、変更できません。

解決方法の提案はありますか? OpenSSH を複数のエントリをサポートする新しいバージョンにアップグレードする必要がありますかAuthorizedKeysFile(rpm でビルドする必要があると思います)? その後のセキュリティ更新はどうなりますか?

答え1

1 つのオプションは、トークンを使用して各ユーザーに固有のauthorized_keysファイルを提供することです。

からsshd_config を実行する:

AuthorizedKeysFile

ユーザー認証に使用できる公開キーを含むファイルを指定します。形式については、の AUTHORIZED_KEYS FILE FORMAT セクションで説明されていますsshd(8)AuthorizedKeysFile%T接続設定中に置換される 形式のトークンが含まれる場合があります以下のトークンが定義されています:%%はリテラル に置き換えられ%%hは認証されるユーザーのホームディレクトリに置き換えられ、%uそのユーザーのユーザー名に置き換えられます. 展開後、AuthorizedKeysFileは絶対パスまたはユーザーのホーム ディレクトリからの相対パスとして扱われます。 複数のファイルを空白で区切ってリストできます。 または、このオプションを に設定して、noneファイル内のユーザー キーのチェックをスキップすることもできます。 デフォルトは です.ssh/authorized_keys .ssh/authorized_keys2

強調は私によるものです。

したがって、次のように設定できます。

AuthorizedKeysFile    .ssh/%u_authorized_keys

次に、ユーザー用にファイルfooを作成します。authorized_keys.ssh/foo_authorized_keys

権限に関する注意

から男のsshd:

~/.ssh/authorized_keys
...
このファイル、ディレクトリ、またはユーザーのホーム ディレクトリが他のユーザーによって書き込み可能である場合、権限のないユーザーによってファイルが変更または置換される可能性があります。この場合、 オプションが に設定されてい ~/.sshない限り、sshd はそれを使用できません。StrictModesno

そのため、キーを の外側に配置する.ssh/か、StrictModesに設定する必要があります。 を設定noすると、他のユーザーが他のユーザーのために を作成したり、他のユーザーの承認済みキーを削除したりできなくなります。おそらく、次のようにするのが最善です。StrictModesnoauthorized_keys

AuthorizedKeysFile    .ssh_%u/authorized_keys

読み取り/書き込みのみ可能な.ssh_foo/ユーザー用のディレクトリを作成します。foofoo


許可する場合は、以下.ssh/authorized_keysを使用して選択できます。

AuthorizedKeysFile    .ssh/authorized_keys    .ssh_%u/authorized_keys

これにより、の「通常の」形式がauthorized_keys引き続き機能するようになります。authorized_keysファイルはユーザーが所有し、適切な権限を持っている必要があります。そうでない場合は無視されます。ただし、別のユーザーのファイルを作成できないようにする必要がありますauthorized_keys。これは、ルートとしてファイルを操作して空にすることを意味する可能性があります。

関連情報