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を迎えているはずなので、サーバを新しくするべきだ。

2022年1月12日 嶋田大貴

記事一覧へ戻る