web-dev-qa-db-ja.com

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

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

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

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

ホームディレクトリを変更できません。それ以外の場合、パスは開発用の実際のパスとは異なります。

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

4
hellcode

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

から man sshd_config

AuthorizedKeysFile

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

強調鉱山。

だからあなたは設定することができます:

AuthorizedKeysFile    .ssh/%u_authorized_keys

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

権限に関する注意

From man sshd

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

したがって、キーを.ssh/の外側に固定するか、StrictModesnoに設定する必要がある場合があります。 StrictModesnoに設定する場合は、他のユーザーが他のユーザーのauthorized_keysを作成できないようにするか、他のユーザーの承認済みキーを削除できないようにしてください。おそらく次のようなことをするのが最善です:

AuthorizedKeysFile    .ssh_%u/authorized_keys

ユーザーfooのディレクトリ.ssh_foo/を作成します。このディレクトリはfooのみが読み取り/書き込みを実行できます。


以下を使用して、.ssh/authorized_keysも許可するかどうかを選択できます

AuthorizedKeysFile    .ssh/authorized_keys    .ssh_%u/authorized_keys

これにより、authorized_keysの「通常の」形式が引き続き機能し、authorized_keysファイルはユーザーが所有し、適切な権限がなければ無視されます。それでも、別のユーザーのauthorized_keysファイルを作成することは不可能であると考えてください。これは、ファイルをrootとして操作して空にすることを意味する場合があります。

12
Centimane