我正在使用 com.jcraft.jsch.JSch
创建 SFTP 连接。
有没有办法绕过/跳过无法建立连接真实性时弹出的真实性警告?
这里有更多细节:
我的代码看起来有点像这样:
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]
有没有办法以编程方式绕过/跳过此弹出窗口并接受连接?
最佳答案
看看 Jsch 的这些示例:http://www.jcraft.com/jsch/examples/Exec.java.html http://www.jcraft.com/jsch/examples/Shell.java.html您会注意到,它们都创建了一个自定义 UserInfo
类,并使用 session.setUserInfo(UserInfo ui);
将其传递给 session 对象。
避免弹出窗口的方法是传入您自己的 UserInfo
对象。您可以通过扩展 UserInfo
类并重写 promptYesNo
函数来实现此目的,如下所示:
public boolean promptYesNo(String str){ return true; }
请注意,所有名称以“prompt”开头的函数都用于通过弹出对话框提示用户信息。您可以重写这些函数以通过其他方式传递信息。
关于java - 使用 Jsch 绕过或强制 session 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14761054/