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