sshexec
パスフレーズで構成された秘密鍵で Antのタスクを使用する方法は?
次の回避策を見つけました。
- 秘密鍵からパスフレーズを削除する (最も実用的)
- たとえば、パスフレーズをコマンドラインオプションとして渡します
-Dpass=mypass
(安全ではありません) - Ant ジョブ定義ファイルにパスフレーズをハードコードする (最悪)
これらはどれも私にとって良い選択肢ではありませんが、最初のものは受け入れられます。
秘密鍵をロードしpageant
ても、まったく役に立たないようです。他の回答からは、Ant がアクセスしようとしているように見えますが、アクセスできず、パスワード認証にフォールバックし、次のように失敗します。
com.jcraft.jsch.JSchException: Auth cancel
at com.jcraft.jsch.Session.connect(Session.java:490)
at com.jcraft.jsch.Session.connect(Session.java:162)
... (rest of the stack trace omitted)
もう 1 つの一般的な症状は、Unlimited Strength JCE がインストールされていない場合で、次のようなエラーが表示されます。
com.jcraft.jsch.JSchException: The cipher 'aes256-cbc' is required, but it is not available.
at com.jcraft.jsch.KeyPair.loadPPK(KeyPair.java:942)
at com.jcraft.jsch.KeyPair.load(KeyPair.java:515)
... (rest of the stack trace omitted)
私の質問に戻るには、これを正しく機能させるにはどうすればよいですか? どこにもハードコーディングしたり、コマンドラインに入力したりせずに、パスフレーズ付きの秘密鍵を使用しますか? pageant
Ant タスクを実行する前に、パスフレーズを入力して秘密鍵を保存できるを利用するのが最善です。