Estoy tratando de escribir un script Ant para recuperar una URL a través del túnel de puertos.com.jcraft.jsch.JSchException: cancelación de autenticación
Funciona muy bien cuando se utiliza una contraseña (los nombres xxxx'd a cabo por privacidad):
<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>
Pero no funciona cuando se utiliza un archivo de claves, así:
<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>
consigo esta excepción:
/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)
- estoy seguro de que estoy usando la c orrect keyfile (He intentado usar el nombre incorrecto, que da una FileNotFoundException legítima).
- Puedo ejecutar satisfactoriamente ssh desde la línea de comandos sin que se me pida una contraseña.
- Estoy seguro de que estoy usando la frase de contraseña correcta para el archivo de claves.
¿Cuál es la causa de este error y qué puedo hacer al respecto?
Uf, he descargado la fuente y parece que JSCH traga la razón de la JSchAuthCancelException, y solo informa "AuthCancel". ¿Alguien quiere depurarlo? –