彼山の知識

IT専門質問の答え

質問

com.jcraft.jsch.JSchException:認証取り消し

私は、ポート·トンネリングを経由してURLを取得するためのAntスクリプトを記述しようとしている.

私は(名前はプライバシーのために出xxxx'd)パスワードを使用している場合、それは素晴らしい作品.

<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ができます.
  • 私はキーファイルの正しいパスフレーズを使用しています確信しています.

何がこのエラーの原因だと私はそれについて何ができますか?


答え

Rank --  3

私は、コードをデバッグする.私の秘密鍵は、認証に失敗したため、これは失敗した.私はパスワードを指定しなかったため、JSchは黙って、キャンセルされたパスワード認証に戻って落ちた.

JSchのエラー処理は、多くのことを吸う.あなたのステップをたどる、(別々の)秘密鍵ファイルを再生成し、あなたが正しいファイルを使用している保証する

ssh -i

使用し、交差した指を保つ.


Rank --  1

sshexecタスクを使用している間、私は同じ問題を持っていた.私もパスフレーズ属性を、追加し、それがうまく働いた.秘密鍵のパスフレーズを作成して、タスクの属性としてこれを追加.また、Windows上でPuTTYgenを使用してキーを生成した場合、SSH形式を開くには、秘密鍵を変換することを忘れないでください.


Rank --  0

今日は、同様の問題があった.だから、私は私の解決策のaswellを共有すると思った.私は同じ例外が発生しましたが、問題は、私は自分のパスワードの中にウムラウトを持っていたという事実だった.それなしで、新しいパスワードを選択した後、すべてがうまく働いた.


Rank --  0

仕事に

jsch

の接続を取得するには、

known_hosts

ファイルの両方におよびプライベートキーを含むファイルへのパスを指定する必要があります.これは

setKnownHosts

addIdentity

メソッドを使用して行われます.

jsch.setKnownHosts("/path/to/.ssh/known_hosts");
jsch.addIdentity("/path/to/.ssh/id_rsa");

鍵がパスフレーズを持っている場合は、

addIdentity

引数リストに追加することができます.

jsch.addIdentity("/path/to/.ssh/id_rsa", myPassPhrase);

See Javadocs


Rank --  0

今出Jschのブランドの新しいフォークがあります.例外処理がはるかに包括的である.これ以上の嚥下したり不履行.それをチェックアウトする https://github.com/vngx/vngx-jsch へ向かう.何かがあなたが期待どおりに動作しない場合は、問題として上げてください、または我々は積極的にそれを維持しているようにプル要求を送信します.また、すぐにMavenの中央リポジトリにそれを得るために探している.