ForceCommandを使用したSSH PermitUserEnvironmentのリスク評価

ForceCommandを使用したSSH PermitUserEnvironmentのリスク評価

専用サーバーデバイスは、ssh1 つのログインアカウントでのみログインを許可します。

  • 公開鍵のみを使用した認証、
  • そして設定されたコマンドを実行しますForceCommand

ログインアカウントは複数のIDで使用でき、各IDにはに登録されている公開鍵がありますauthorized_keys

これらの公開鍵のいくつかのコマンドに制御トークンを渡したいと思います。

環境変数を使用してこれを達成できますenvironment=authorized_keysPermitUserEnvironmentグローバルオプションsshd_configブロックではサポートされていませんMatch)。

を有効にすると、PermitUserEnvironmentクライアントは環境変数を渡すこともできます。しかし、次の理由でこれは安全だと思います。

  • AcceptEnvクライアントは、サーバーの設定で許可されている変数のみを渡すことができます。
  • 設定された変数は、authorized_keysクライアントから渡された変数よりも優先されます。
  • 唯一の有効なログインは強制コマンドを実行するため、環境を調整できるインタラクティブシェルにアクセスできません。

だから私は信じる

  • 使用方法がわからない場合は、AcceptEnvクライアントが環境変数を渡すことはできません。
  • すべての公開鍵に変数値を設定すると(誤って)、許可されていてもクライアントがそれを上書きする方法はありませんAcceptEnv
  • シェルアクセスがないため、環境を変更する他の方法はありません。

この製品を使用しても安全ですかPermitUserEnvironment?それとも上記で検討していない他のリスクはありますか?

関連情報