なにがおきたのか
他環境の生死確認でrundeckからリモートノード実行で単純なコマンドを実行させるということをしています。このジョブがある日を境に動かなくなりました。ジョブのログには次のようなエラーが残っています。
Failed: SSHProtocolFailure: invalid privatekey: [B@3774f82e
SSHキーが無効になったようなので、とりあえずssh-keygenで再作成しましたが、症状は変わりません。興味深いことにコマンドラインからOpenSSHで実行すると別に問題ありません。どうやらrundeck側の問題のようです。
調べてみると
検索してみると、この障害は割とポピュラーなもののようでした。
OpenSSH keys not accepted
rundeck-ssh doesn't work with keys other than rsa?
どうやらrundeckで使われているライブラリがSSHの暗号タイプを扱えないらしく、デフォルトのSSHからSSHJライブラリに切り替えろ、ということのようです。
設定変更
この変更はプロジェクト単位で行います。
PROJECT SETTINGS → EDIT CONFIGURATION → Default ノードエクズキュータ
ここで、「SSH」を「SSHJ-SSH」に変更します。
隣のタブには「Default ファイルコピー」がありますが、こちらもファイル転送を行うのであれば「SCP」から「SSHJ-SCP」に変更した方がよさそうです。
それはそれとして
しかし、特にrundeckやJAVA関係のパッチを当てた覚えもないのでなぜ突然使えなくなったのかが不明で、そこは引っかかります。