java - 如果没有私钥,jsch 身份验证失败

标签 java ssh jsch ssh-keys openssh

我正在使用 Jsch 执行 ssh 命令。 当我传递私钥时,它工作得很好,但我需要它在没有私钥传递的情况下工作(它已经复制到那里)。

所以在控制台中我可以无需任何操作就可以 ssh 到该服务器。但 Jsch 抛出 Auth Fail。我该怎么做?

Session session = jSch.getSession(server);
session.setConfig("StrictHostKeyChecking", "no");
session.setConfig("UserKnownHostsFile", "/dev/null");
session.connect(connectTimeout);

最佳答案

按照设计,您始终需要拥有私钥来证明您的身份。您的私钥永远不会“已复制到那里”。如果您在“没有任何内容”的 shell 中成功连接 ssh,那肯定是因为您的 ssh 配置为查找私钥并且它正在成功执行此操作。

关于java - 如果没有私钥,jsch 身份验证失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27001710/

相关文章:

java - 无法在我的车辆交易程序中销售卡车和 1 个 JUnit 错误(缺少抽象方法)

java - 基于图像添加楼层或如何优化现有方法

java - 通过 SSH hibernate

java - 使用 JSch 通过 SSH 运行命令

java.lang.NoClassDefFoundError : com/jcraft/jsch/JSch error in JSP file

java - 为使用 JSch 通过 SSH 执行的命令提供输入/子命令

java - Android Activity 不保存首选项?

git - 为什么flutter pub找不到我的github ssh-key?

postgresql - repmgr 错误 : A master must be defined before configuring a slave

java - 有没有办法让 Java8 持续一年的时间占闰年?