OpenSSHをアップデートしたら古いサーバにログインできなくなった時の対処
最新の OpenSSHはデフォルトで古いハッシュアルゴリズムを受け付けないようになった
2022年1月12日 嶋田大貴
OpenSSH 8.8から、デフォルトではSHA-1ハッシュアルゴリズムを使ったRSA署名を受け付けなくなった。この変更が原因で、古いサーバにSSHでログインしようとすると
Unable to negotiate with xxx.xxx.xxx.xxx port 22: no matching host key type found. Their offer: ssh-rsa,ssh-dss
のようなエラーで拒否される。この場合、~/.ssh/config
にて
Host old-host.yourdomain.com
HostkeyAlgorithms +ssh-rsa
PubkeyAcceptedAlgorithms +ssh-rsa
のようにして回避できる。ただし無論これはその場しのぎの対処であって、将来のバージョンで本格的に SHA-1への対応が削除されないとも限らない。SHA-1で署名された鍵を使用するようなバージョンの OpenSSHを使用している OS(e.g. RHEL/CentOS 6)は既にEOLを迎えているはずなので、サーバを新しくするべきだ。
記事へのコメントは Twitterにお願いします。
2022年1月12日 嶋田大貴