2

com.jcraft.jsch.JSchSFTP接続を作成するために使用しています。

接続の信頼性を確立できないときにポップアップする信頼性の警告をバイパス/スキップする方法はありますか?

詳細は次のとおりです。

私のコードは次のようになります。

Session session = jsch.getSession(user, host, port);
UserInfo ui = new MyUserInfo();
session.setUserInfo(ui);
session.connect();

行が呼び出されると、session.connect();次のようなポップアップが表示されます。

The authenticity of host <MY HOST> can't be established.
...
Are you sure you want to continue connecting?
[No] [Yes]

このポップアップをプログラムでバイパス/スキップして接続を受け入れる方法はありますか?

4

2 に答える 2

4

Jsch のこれらの例を見てみましょう: http://www.jcraft.com/jsch/examples/Exec.java.html http://www.jcraft.com/jsch/examples/Shell.java.htmlUserInfoどちらもカス​​タムクラスを作成し、それを でセッション オブジェクトに渡すことに注意してsession.setUserInfo(UserInfo ui);ください。

そのポップアップ ウィンドウを回避する方法は、独自のUserInfoオブジェクトを渡すことです。次のように、クラスを拡張して関数UserInfoをオーバーライドすることでこれを行うことができます。promptYesNo

public boolean promptYesNo(String str){ return true; }

名前が「prompt」で始まるすべての関数は、ポップアップ ダイアログでユーザーに情報を求めるために使用されることに注意してください。これらの関数をオーバーライドして、他の方法で情報を渡すことができます。

于 2013-02-07T21:21:38.337 に答える
3

このスレッドは非常に古いものであり、既に解決されている場合は返信を必要としないことは承知していますが、1 週間前、私も同様の要件を持つアプリケーションに取り組んでいました。

Jon7 の言ったことは正しかった。それに加えて、クラスを拡張しないという別の方法もあります。

Session session = jsch.getSession(user, host, port);
...
Properties prop = new Properties();
prop.setProperty("StrictHostKeyChecking", "no");
session.setConfig(prop);
session.connect();

他の人を助けることができるちょうど別の方法:)

よろしく、

icr

于 2013-08-14T02:40:15.287 に答える