新しく Debian のサーバを入れたときに 別のサーバから既存の鍵を 移行しようとしてハマりました。
authorized_keys コピーして 既存の秘密鍵で ログインしようとしたのですが 次のようなエラーが出てログインできませんでした。
auth.log:488:Feb 21 06:31:01 XXXX sshd[1296]: error: Host key ... blacklisted (see ssh-vulnkey(1))
調べてみると どうやら一部の Debian、Ubuntu などで 生成されたOpenSSLベースの鍵は、 プロセス ID を元に乱数としており 乱数の使用方法に問題があったため 鍵の作り直しが必要になるようです。
これに該当するようで エラーが出ていたようです。
鍵を作り直さなければならないのですが とりあえず 一時的に接続できるようにするには sshd_config に 次の設定を追加します。
PermitBlacklistedKeys yes
とりあえずは これで繋がるようになりました。
問題ある鍵(脆弱な鍵)を調べるための コマンドも用意されていました。 次のコマンドで、全ての(標準の場所に格納されている)鍵を チェックします。
# ssh-vulnkey -a Not blacklisted: 2048 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx root@xxx Not blacklisted: 1024 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx root@xxx COMPROMISED: 2048 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx user@xxx
COMPROMISED と出ている鍵が NG (脆弱) です。