ポートトンネリングを介してURLを取得するAntスクリプトを作成しようとしています。
パスワード(プライバシーのためにxxxxの名前)を使用すると、うまく機能します。
<project default="main">
<target name="main">
<sshsession host="xxxx"
username="xxxx"
password="xxxx">
<LocalTunnel lport="1080" rhost="xxxx" rport="80"/>
<sequential>
<get src="http://localhost:1080/xxxx" dest="/tmp/xxxx"/>
</sequential>
</sshsession>
</target>
</project>
しかし、次のようにキーファイルを使用すると機能しません。
<sshsession host="xxxx"
username="xxxx"
keyfile="/Users/xxxx/.ssh/id_dsa"
passphrase="xxxx">
<LocalTunnel lport="1080" rhost="xxxx" rport="80"/>
<sequential>
<get src="http://localhost:1080/xxxx" dest="/tmp/xxxx"/>
</sequential>
</sshsession>
この例外が発生します:
/tmp/build.xml:8: com.jcraft.jsch.JSchException: Auth cancel
at com.jcraft.jsch.Session.connect(Session.java:451)
at com.jcraft.jsch.Session.connect(Session.java:150)
at org.apache.tools.ant.taskdefs.optional.ssh.SSHBase.openSession(SSHBase.java:223)
- 正しいキーファイルを使用していると確信しています(間違った名前を使用しようとしましたが、これにより正当なFileNotFoundExceptionが発生します)。
- パスワードの入力を求められることなく、コマンドラインから正常にSSH接続できます。
- キーファイルに正しいパスフレーズを使用していると確信しています。
このエラーの原因は何ですか?また、どうすればよいですか?