テクノロジー · 実用ガイド

SSH の「no matching host key type found」—旧式アルゴリズムを許可する前に境界を証明する

これはログイン鍵ではなくサーバーホスト鍵のネゴシエーションエラーです。接続先、指紋、双方の候補を証明し、旧式許可は特定ホスト限定・所有者付き・期限付きにします。

オリジナル技術図:SSH ホスト鍵ネゴシエーションの境界
オリジナルイラスト:詳細ログのクライアント候補とサーバー KEXINIT の候補を保存します。共通項がないことが直接の証拠です。 Watch at Ease

これはログイン鍵ではなくサーバーホスト鍵のネゴシエーションエラーです。接続先、指紋、双方の候補を証明し、旧式許可は特定ホスト限定・所有者付き・期限付きにします。

このエラーはサーバー識別アルゴリズムの合意段階で起き、ユーザー公開鍵認証はまだ始まっていません。 変更前にエイリアス、HostName、ポート、踏み台経路、設定元を記録します。 一回の詳細接続からクライアントとサーバー双方のホスト鍵候補を保存します。

認証鍵を触る前にエラーを分類する

完全なエラーと秘匿化した ssh -vvv を保存し、host key type/algorithm と書かれているか確認します。KEX、cipher、MAC、ユーザー認証なら別の経路です。

ユーザー鍵の交換、authorized_keys、agent、PubkeyAcceptedAlgorithms はまだ変更しません。

実効接続先と設定を証明する

正確なエイリアスで ssh -G を実行し、HostName、ポート、ユーザー、ProxyJump、known_hosts、HostKeyAlgorithms を記録します。

Alias、Include、DNS、ポート、踏み台のずれを先に解決し、誤った接続先へ例外を付けません。

双方のホスト鍵候補を比較する

詳細ログのクライアント候補とサーバー KEXINIT の候補を保存します。共通項がないことが直接の証拠です。

HostKeyAlgorithms、KexAlgorithms、Ciphers、PubkeyAcceptedAlgorithms を混同しません。

接続先を検証し RSA 名を区別する

資産台帳、コンソール、認証済み管理者から鍵種別と SHA256 指紋を確認します。ssh-keyscan 単独では身元証明になりません。

RFC 8332 の rsa-sha2-256/512 は RSA 鍵を使えても旧 ssh-rsa/SHA-1 ではありません。

サーバー修復を優先し例外は一ホストに限定する

恒久対策はサーバー更新か ED25519、ECDSA、RSA-SHA2 の設定と新指紋確認です。

検証済み接続先だけで単一コマンドの +ssh-rsa を試し、承認時も特定 Host、所有者、理由、期限を記録します。

オリジナル技術図:旧式 SSH ホスト鍵例外の管理
オリジナルイラスト:検証済み接続先だけで単一コマンドの +ssh-rsa を試し、承認時も特定 Host、所有者、理由、期限を記録します。 Watch at Ease