特定のSSHキーを使用したログインを一時的に無効にする

特定のSSHキーを使用したログインを一時的に無効にする

私のサーバーには、 にいくつかの公開 SSH キーがあります~/.ssh/authorized_keys

1 つのキーを一時的にブロック/禁止/非アクティブ化したいと思います。現時点では、ユーザーがこのキーを使用してログインできないようにしたいのですが、後で再度有効にしたい場合があります (つまり、キーを完全に削除したくありません)。

正しい/推奨される方法は何ですか?

キーの前の#行の先頭にコメントを入れればいいのでしょうか?authorized_keys

明確に言うと、特定のユーザーをブロックしたいわけではありません。 1 つのユーザー アカウントが複数のユーザーで共有され、各ユーザーが独自の SSH キーで接続します。 特定の SSH キーを 1 つブロックしたいのです。

答え1

何が起こっているかをユーザーに伝える強制コマンドをキーの前に付けることができます。例:

restrict,command="printf 'Your key has been disabled\n'" ssh-rsa AAAAB2...19Q== [email protected]

または Openssh v7.2 より前のバージョンの場合:

command="printf 'Your key has been disabled\n'",no-pty,no-port-forwarding ssh-rsa AAAAB2...19Q== [email protected]

次に、次のものを取得します。

$ ssh servername
PTY allocation request failed on channel 0
Your key has been disabled
Connection to servername closed.

答え2

はい、関連する行の前に (または、最初のエントリが有効でない#限り、他の任意の文字)を置くことができます。ssh-rsa

これを実行すると、システムがプレーンテキスト パスワード ログインも許可している場合、ユーザーはログイン時にパスワードの入力を求められます。したがって、アカウントに関連付けられた (既知の) パスワードがないことを確認する必要があります。

関連情報