環境
Cisco Switch : WS-C3560CG-8PC-S
IOS Version : 15.2(2)E10
サーバー : Ubuntu 20.04
経緯・原因
ubuntuサーバにopenssh-clientをインストールし、Cisco機器へSSH接続しようとしたところ、下記のような返事が。
ubuntu-sv:~# ssh 192.168.1.2
Unable to negotiate with 192.168.1.2 port 22: no matching key exchange method found. Their offer: diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
[Deepl翻訳]
192.168.1.2 ポート 22 とネゴシエートできません: 一致するキー交換方式が見つかりません。相手の申し出: diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
どうやらciscoで使われているハッシュ関数のSHA-1は2005年に攻撃法が発見されて、数年後の2017年にUbuntu17.04からデフォルトでSHA-1は無効化されているようです。
解決策
ssh_configを編集してSHA-1を使えるようにします。
コマンド
# vim /etc/ssh/ssh_config
下記の文を追記する。
[追加文]
KexAlgorithms=+diffie-hellman-group1-sha1