com.jcraft.jsch.JSchException: Auth annuler

Je suis en train d'écrire un script Ant pour récupérer une URL via le port de tunneliers.

Il fonctionne très bien lorsque j'utilise un mot de passe (les noms xxxx suite de la vie privée):

<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>

Mais il ne fonctionne pas lorsque j'utilise un fichier de clés, comme ceci:

    <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>

- Je obtenir cette exception:

/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)
  • Je suis sûr que je suis en utilisant le bon fichier (j'ai essayé d'utiliser le mauvais nom, ce qui donne une légitime FileNotFoundException).
  • Je peux avec succès ssh en ligne de commande, sans être invité pour un mot de passe.
  • Je suis sûr que je suis en utilisant le bon mot de passe pour le fichier.

Ce qui est la cause de cette erreur et ce que je peux faire à ce sujet?

Ugh, j'ai téléchargé la source et il semble que Jsch avale la raison de la JSchAuthCancelException, et les rapports simplement "AuthCancel". Si quelqu'un veut le corriger?

OriginalL'auteur Dan Fabulich | 2010-05-25