0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

古いSSHサーバーに接続できないときの対処法

Last updated at Posted at 2025-04-29

概要

古いSSHサーバー(MySQLの踏み台サーバーなど)に接続しようとすると、次のようなエラーが出ることがあります。

Unable to negotiate with 192.168.XXX.XXX port 22: no matching host key type found.
Their offer: ssh-rsa,ssh-dss

(日本語訳)
192.168.XXX.XXX(ポート22)との交渉に失敗しました:一致するホスト鍵の種類が見つかりません。
相手側が提示した鍵の種類:ssh-rsa、ssh-dss

このエラーは、接続先のSSHサーバーが古い鍵アルゴリズム(ssh-rsassh-dss)のみをサポートしており、クライアント側がそれらを許可していないために発生します。

ssh-rsa および ssh-dss はともにセキュリティ上の理由から、OpenSSH 8.8以降ではデフォルトで無効化されています。

補足(技術的背景)

■ssh-rsa
署名に使われるSHA-1が脆弱なため、衝突攻撃のリスクが現実的になり、OpenSSH 8.8以降でデフォルト無効化。

■ssh-dss(DSA)
安全なハッシュ関数が使えず、鍵長も短いため、OpenSSHでは完全に非推奨ssh-rsaより危険。

対処法

以下のように ~/.ssh/config に接続設定を追加することで、一時的に ssh-rsa を許可して接続できるようになります。

Host 192.168.XXX.XXX
	HostKeyAlgorithms +ssh-rsa        # サーバーのホスト鍵としてssh-rsaを許可
	PubkeyAcceptedAlgorithms +ssh-rsa # クライアント認証にもssh-rsaを許可

各設定の意味:

  • Host:この設定を適用する対象ホスト(IPアドレス)を指定。
  • HostKeyAlgorithms:サーバーのホスト鍵に ssh-rsa を追加で許可。
  • PubkeyAcceptedAlgorithms:クライアントの公開鍵認証にも ssh-rsa を追加で許可。

公開鍵の種類や認証方式に応じて記述してください。

セキュリティ注意

この設定は「古いサーバーへの接続を許可するための一時的対応」です。

可能であれば、サーバー側のSSHバージョンアップや、より安全な鍵方式(例:ed25519)への移行を検討してください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?