DebianコンピュータでSSH経由でCiscoルータに接続しようとすると、次のメッセージが表示されます。
Unable to negotiate with 192.168.1.1 port 22: no matching key exchange method found. Their offer: diffie-hellman-group-exchange-sha1
このフォーラムには答えがあると主張する同様の質問がありますが、微妙な違いのため私には適していないことがわかったので、ここに質問と回答を投稿することにしました。
答え1
接続するすべてのホストに対してシステム全体でこの機能を完全に有効にするには、/etc/ssh/ssh_configに以下を追加します。
Host *
KexAlgorithms +diffie-hellman-group-exchange-sha1
自分のアカウントでのみ有効にするには、~/.ssh/configに次のように追加します。
Host *
KexAlgorithms +diffie-hellman-group-exchange-sha1
特定のホストに対してこの機能を有効にするには、上記のファイルのいずれかを編集して次を追加します。
Host 192.168.1.1
KexAlgorithms +diffie-hellman-group-exchange-sha1
ホストグループおよび/またはユーザーグループに対してこの機能を有効にするには、読む。
答え2
この試み
{
echo -n 'Ciphers '
ssh -Q cipher | tr '\n' ',' | sed -e 's/,$//'; echo
echo -n 'MACs '
ssh -Q mac | tr '\n' ',' | sed -e 's/,$//'; echo
echo -n 'HostKeyAlgorithms '
ssh -Q key | tr '\n' ',' | sed -e 's/,$//'; echo
echo -n 'KexAlgorithms '
ssh -Q kex | tr '\n' ',' | sed -e 's/,$//'; echo
} >> ~/.ssh/config
答え3
"diffie-hellman-group-exchange-sha1"の問題を解決した後、次のエラーは次のようになります。
「一致するホストキータイプが見つかりません。引用:ssh-rsa」
したがって、完全な解決策は、これを〜/ .ssh / configファイル(デフォルト設定ではない)に追加することです。
Host x.x.x.x
KexAlgorithms +diffie-hellman-group1-sha1
Ciphers aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc
User root
PubkeyAcceptedAlgorithms +ssh-rsa
HostkeyAlgorithms +ssh-rsa
ホストアドレスとユーザー名をあなたのものに変更してください。
答え4
SSHバージョン2用のCiscoルータおよびLinux SSHクライアントの設定
A. Ciscoルータから:
- 〜できるようにする
- 端末構成
- CPU名
- IPドメイン名
- 暗号化キーはrsaを0にします(オプションで古いコンテンツを削除します)。
- 暗号化キー生成rsa(キーサイズ2048)
- IP SSH タイムアウト秒 30
- ip ssh 認証の再試行 3
- ip sshバージョン2(1は廃止され、opensslではサポートされていません)
- 出口
B. クライアント (Linux) から接続します。
- /etc/ssh/ssh_config 編集
- ホスト(ルーターのURL、ホスト名、またはIP *)
- Kex アルゴリズム diffie-hellman-group1-sha1
- パスワード3des-cbc、aes192-cbc、aes256-cbc
- 注 - 上記のホストは、sshコマンドのホスト部分として使用されるものと一致し、引用符付きの各入力に対して1つずつ構築する必要があります。
- クライアント接続構文:
SSH 例: ssh -p 22 user@hostname
古いCiscoアプライアンスはポート22でSSHのみをサポートします。特に、Catalystタイプや時代スイッチなどの古い機器もSSHをまったくサポートしていません。