はじめに
自宅のルータに SSH で入ろうと思ったら no matching key exchange method found.
とか言われて認証させてくれなくなった
環境は以下
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.1 LTS
Release: 20.04
Codename: focal
$ ssh -V
OpenSSH_8.2p1 Ubuntu-4ubuntu0.1, OpenSSL 1.1.1f 31 Mar 2020
RTX810 Rev.11.01.33 (Fri Apr 20 08:44:58 2018)
事象
相手(RTX810)の鍵交換方式が古すぎて疎通できないってよ!
$ ssh 192.168.x.x
Unable to negotiate with 192.168.x.x port 22: no matching key exchange method found. Their offer: diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
解決策
ホストを限定して古いアルゴリズムを許可すれば通信できるよ
$ vim ~/.ssh/config
Host 192.168.x.x
KexAlgorithms +diffie-hellman-group14-sha1
更新:2020/11/22
解決策 で diffie-hellman-group1-sha1
を指定していましたが、コメントをいただいたとおり
選択可能なら鍵長の長い安全なものを選択するべきでした。
diffie-hellman-group14-sha1
に修正しました!(@ttdoda さん、ありがとうございます!!)
参考:
OpenSSHの暗号化周りの設定について
対応しているアルゴリズムはなんですか?
対応しているTLSのバージョンはいくつですか?
買い替え時期か~