SSH を使用して Amazon Elastic Compute Cloud (Amazon EC2) Linux インスタンスに接続すると、「No matching host key type found」または「No matching key exchange method found」というエラーが表示されます。簡単な説明
簡単な説明
SSH を使用して EC2 Linux インスタンスに接続する際に、次のいずれかのエラーが表示される場合があります。
- No matching host key type found: このエラーは、SSH が接続先のサーバーと共通の暗号化アルゴリズムまたはホストキーをネゴシエートできない場合に発生します。
- No matching key exchange method found: このエラーは、SSH ハンドシェイク中に SSH クライアントとサーバー間でネゴシエートされたキー交換アルゴリズムに問題があることを示すものです。このエラーは、SSH クライアントとサーバーのキー交換アルゴリズムが異なる場合、または互換性のない場合に発生します。
解決策
openssh-client を更新する
古いバージョンの openssh-client は、サーバーがネゴシエートしたキー交換アルゴリズムをサポートしていない可能性があります。次のコマンドのいずれかを実行して、クライアントを最新バージョンに更新します。
Ubuntu および Debian
sudo apt upgrade openssh-client
Amazon Linux、RHEL、および Fedora
sudo yum upgrade openssh-clients
「no matching host key type found」エラーを解決する
エラーの例
Unable to negotiate with X.X.X.X port 22. no matching host key type found. Their offer: rsa-sha2-512,rsa-sha2-256,ecdsa-sha2-nistp256,ssh-ed25519.
このエラーを解決するには、サーバーとクライアントに一致するホストキーアルゴリズムが少なくとも 1 つあることを確認します。サーバーとクライアントで次のコマンドを実行して、ホストキーアルゴリズムを確認します。
sudo ssh -Q key
クライアントにアルゴリズムを追加するには、~/.ssh/config または /etc/ssh/ssh_config ファイルに次の行を追加します。
vi ~/.ssh/config
HostkeyAlgorithms +ssh-ed25519
「no matching key exchange method found」エラーを解決する
エラーの例
Unable to negotiate with X.X.X.X port 22: no matching key exchange method found. Their offer: curve25519-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group14-sha25
このエラーを解決するには、サーバーとクライアントに一致するキー交換アルゴリズムが少なくとも 1 つあることを確認します。サーバーとクライアントで次のコマンドを実行して、キー交換アルゴリズムを確認します。
sudo ssh -Q kex
クライアントにキー交換アルゴリズムを追加するには、~/.ssh/config または /etc/ssh/ssh_config ファイルに次の行を追加します。
vi ~/.ssh/config
KexAlgorithms +diffie-hellman-group16-sha512
関連情報
openssh.com の OpenSSH レガシーオプション