SSH を使用して EC2 Linux インスタンスに接続する際の「Unable to negotiate: No matching host key type found」というエラーを解決するにはどうすればいいですか ?

所要時間1分
0

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 レガシーオプション

AWS公式
AWS公式更新しました 1年前
コメントはありません

関連するコンテンツ