新しくセットアップした OPNsense ルーターアプライアンス ホストに MacOS から SSHログインしようとしたところ、今まで見たことが無いメッセージが発生。
%ssh user@gateway
no hostkey alg
古いバージョンのSSHコマンドしか使えない古めのOSから、新しくインストールしたUnix系ホストにログインしようとすると、暗号化バージョンの不一致でログインできないことが起きるのですが、”no hostkey alg” は初めて。
最近のOSで動いているホストは、デフォルトでは telnet が使えないように設定してあるので、ssh でリモート接続することになりますが、我が家のように古いOSも動いている環境では、古いバージョンのsshを使うことがあります。
「ssh_exchange_identification: Connection closed by remote host」で接続できないことは体験済みですが、「no hostkey alg」は何?
検索してみると、alg はアルゴリズムの略みたい。
最近のSSHd は古いホストキーアルゴリズム ssh-rsa が、デフォルトでは削除されているようです。
sshd_config 中に、
HostKeyAlgorithms ssh-rsa PubkeyAcceptedAlgorithms ssh-rsa
と二行追加してデーモンを再起動し、古いsshバージョンにも対応できるようにすれば、接続できるようになりました。
手動で sshd_config を書き換えるか、OPNsense の場合は、設定の、
System → Administratration → Secure Shell のセクションで、「Host key algorithms」「Public key signature algorithms」に ssh-rsa を追加すれば元通り古いOSのsshから接続できるようになります。
OPNsense、古いユーザーも見捨てずにいてくれてありがたい。