SSH キー認証を使用して、別のユーザー名でリモート システムにログインできますか?

SSH キー認証を使用して、別のユーザー名でリモート システムにログインできますか?

「remotesystem」という名前のリモート システムがあり、そのシステム上に「foouser」というユーザー アカウントがあるとします。

ローカル システムでは、ローカル ユーザー「foouser」として SSH キー ペアを生成し、その公開キーを「remotesystem」の「/home/foouser/.ssh/authorized_keys」ファイルに配置できることがわかっています。ローカル システムから「foouser」として「remotesystem」に SSH 接続すると、SSH はキー ペアを使用して認証を行います。

しかし、ローカルのユーザー名がリモート システムのユーザー名と同じでない場合はどうなるでしょうか。つまり、ローカル ユーザー「baruser」として「remotesystem」に SSH 接続したい場合はどうなるでしょうか。明らかに、「baruser」のキー ペアを生成し、公開キーを「/home/foouser/.ssh/authorized_keys」に追加する必要があります。その後、「baruser」としてローカルにログインしているときに「ssh foouser@remotesystem」を実行でき、SSH はキー ペアを使用して認証するはずです。

このシナリオでキー認証を機能させようとしましたが、成功しなかったため、質問しています。ユーザー名の不一致が原因か、リモート システムの SSH サーバーの構成の問題が原因かはわかりません。

答え1

はい、あなたが説明したとおりにこれを行うことができます。

baruser@ここ ~$ ssh-add -l
4096 10:b3:fd:29:08:86:24:a6:da:0a:dd:c6:1e:b0:66:6a id_rsa (RSA)
baruser@ここ ~$ ssh foouser@remotesystem
motdメッセージなど
foouser@リモートシステム ~$

答え2

余談ですが……。

リモート サーバーに常に同じユーザー名を使用している場合は、ssh 設定にホストを追加すると便利な場合があります。

Host remotesystem
    User baruser

そうすれば、ログイン時にユーザー名を指定することを覚えておく必要がなくなり、将来キーに関する問題が発生した場合でもその問題を排除できます。

答え3

ローカルのユーザー名は、実際には重要ではありません (秘密キーがローカル ユーザーのホーム ディレクトリ内に存在する必要があることを除いて)。キーをリモート ユーザーのauthorized_keysセクションにコピーするだけで機能します。

答え4

SSH 関連の問題が発生した場合、最初に行うべきことはクライアントの詳細度を上げることです。

ssh ユーザー@マシン -vvv

これで何が問題なのかが分からない場合は、サーバーのログ レベルを変更してデーモンを再起動する必要があります。

ログレベル DEBUG3

デバッグ出力は /var/log/auth.log (または ssh がログに記録するように設定されている場所) にあります。問題を見つけたら、問題を発見したときと同じ設定に戻すことを忘れないでください。

関連情報