3つのマシンがあります:A(BとCに接続されている場所)、Bと
C。
Cでは、Known_hostsファイルは次のようになります。
C:~/.ssh # grep B *
C:~/.ssh # grep A *
known_hosts:ssh-rsa xxxx...xxxx
C:~/.ssh #
CからAへの接続を試みると、「A」はRSAホストキーを提供します。
C から B への接続を試みると、「B」は ECDSA ホスト鍵を提供します。
質問:なぜ? 「A」と「B」の両方のサーバーがRSA SSHDホストキーを提供する必要があるのは論理的ではありませんか?
答え1
ホストキーを初めて学習するときは、ECDH / ECDSAキーが優先されます。ホストCはすでにホストAのRSAキーを知っているので、そのキーを使用し続けます。ただし、ホストCはホストBのキーについて何も知らないため、ECDH / ECDSAが使用されます。
(私が言及した5.7 リリースノート、ECDH/ECDSAが導入されたとき)。
私が受け取った質問: 両方のキーが必要ですか? はい。すべての SSH インストールが ECDSA をサポートしているわけではないため、RSA が必要です。 (例えば、パテはまだECDSAをサポートしていません。) ECDSAさえあればどうなりますか? 誰があなたに連絡しようとしているかによって異なります。 ECDSAをサポートすると、すべてが期待どおりに機能します。そうでなければ、あなたは何らかの失敗を経験しました。 どちらが良いですか? 個人的にはわかりません。 ECDSAはより少ない馬力を必要とするので、古いハードウェアでより速いと思います。 OpenSSHはRSAよりもこれを好むので、開発者はECDSAが良いと思うようです。
答え2
接続しようとしているサーバーが同じバージョンおよび/etc/ssh/sshd_config
/またはOpenSSH(およびOpenSSL)バージョンを持っていますか(同じ構成と接続する場所が少し矛盾しているようです)。 ECDH/ECDSA は OpenSSH 5.7p1 で導入されているため、サーバーが古い場合はキーファイルを無視します。