「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サーバーの構成に問題があるのかはわかりません。
はい、あなたがそれを説明したように、あなたはこれを行うことができます。
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〜$
少し余談ですが.....
リモートサーバーに常に同じユーザー名を使用している場合は、ssh構成にホストを追加すると便利な場合があります。
Host remotesystem
User baruser
こうすることで、ログイン時にユーザー名を指定することを覚える必要がなくなり、将来的にキーに問題が発生したときに除外することができます。
ローカルのユーザー名は重要ではありません(ローカルキーがローカルユーザーのホームディレクトリ内に存在する必要があることを除いて)。キーをリモートユーザーのauthorized_keys
セクションにコピーするだけで機能します。
SSH関連の問題がある場合、最初に行うことはクライアントの詳細度を上げることです。
ssh user @ machine -vvv
これで何が悪いのかについての洞察が得られない場合は、サーバーのログレベルを変更してデーモンを再起動する必要があります。
LogLevel DEBUG3
/var/log/auth.log(またはsshがログを記録するように構成されている場合)にデバッグ出力があるはずです。問題を見つけたら、それを見つけた方法に戻してください。
SE Linuxを有効にしている場合は、次の操作も行う必要があります。
SELinuxラベルをauthorized_keys
に追加して、sshdからアクセスできるようにします。
semanage fcontext -a -t sshd_key_t ~foo/.ssh/authorized_keys
restorecon -Rv ~user/.ssh
両方のマシンの.sshディレクトリーに対する許可はかなり正確です。通常、これは.sshディレクトリで700、ホームディレクトリで最大755を意味します。 .sshディレクトリ内のすべてのファイルで600に加えて。
リモートシステムのユーザーがrootの場合、rootがsshを実行できることを確認してください。 (sshd_configのPermitRootLogin)、その公開鍵(PubkeyAuthentication)、および必要に応じてRSA(RSAAuthentication)が有効になっています。
正常に動作しているようですが、authorized_keysに対する権限が正しいことを確認してください。 600に設定する必要があります。