java - 使用 Jsch 绕过或强制 session 身份验证

标签 java sftp jsch

我正在使用 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/

相关文章:

java - 以 '/' 字符作为 JSON 键的 Jackson ObjectMapper

ubuntu - 将 SFTP 用户限制在主目录

linux - sftp chroot 目录上的公钥授权

java - 使用 Jackson 进行 boolean 和数组数据绑定(bind)

java - Spring MVC 绑定(bind)

java - Java中如何比较两个相同对象的数据

带有私钥身份验证的 SFTP 的 cURL

java - 使用 JSch 从 SFTP 服务器检索数据

java - 为什么我在使用 JSch 时会看到乱七八糟的输出?

java - 在 jgit 中配置 known_hosts