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