web-dev-qa-db-ja.com

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

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

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

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

このシナリオでキー認証を成功させようとしているので、私は尋ねています。ユーザー名が一致していないのか、リモートシステムのSSHサーバーの構成に問題があるのか​​はわかりません。

17
Matt Hurne

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

 baruser @ here〜$ ssh-add -l 
 4096 10:b3:fd:29:08:86:24:a6:da:0a:dd:c6:1e:b0:66 :6a id_rsa(RSA)
 baruser @ here〜$ ssh foouser @ remotesystem 
 motd messageなど 
 foouser @ remotesystem〜$ 
11
user1686

少し余談ですが.....

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

Host remotesystem
    User baruser

こうすることで、ログイン時にユーザー名を指定することを覚える必要がなくなり、将来的にキーに問題が発生したときに除外することができます。

10
Mark

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

5
Sören Kuklau

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

ssh user @ machine -vvv

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

LogLevel DEBUG3

/var/log/auth.log(またはsshがログを記録するように構成されている場合)にデバッグ出力があるはずです。問題を見つけたら、それを見つけた方法に戻してください。

3
David Pashley

SE Linuxを有効にしている場合は、次の操作も行う必要があります。

SELinuxラベルをauthorized_keysに追加して、sshdからアクセスできるようにします。

semanage fcontext -a -t sshd_key_t ~foo/.ssh/authorized_keys
restorecon -Rv ~user/.ssh
2
Prof Mo

両方のマシンの.sshディレクトリーに対する許可はかなり正確です。通常、これは.sshディレクトリで700、ホームディレクトリで最大755を意味します。 .sshディレクトリ内のすべてのファイルで600に加えて。

リモートシステムのユーザーがrootの場合、rootがsshを実行できることを確認してください。 (sshd_configのPermitRootLogin)、その公開鍵(PubkeyAuthentication)、および必要に応じてRSA(RSAAuthentication)が有効になっています。

正常に動作しているようですが、authorized_keysに対する権限が正しいことを確認してください。 600に設定する必要があります。

0
Michael Gorsuch