
「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 がログに記録するように設定されている場所) にあります。問題を見つけたら、問題を発見したときと同じ設定に戻すことを忘れないでください。