我是Jsch的新手,我尝试通过sftp连接到第三方。我可以通过SSH连接,所以我知道我有正确的用户,主机,端口和私钥文件,但是当我尝试通过Jsch进行连接时,我收到了“Auth failed”异常消息,这几乎但不完全有用。这里是我的代码,我从例子拼凑在线:jsch session.connect()问题
String pvtkey = "{unixpath}/id_dsa";
ChannelSftp sftp = null;
JSch jsch = new JSch();
Session session = null;
try{
jsch.setKnownHosts("{unixpath}/known_hosts");
jsch.addIdentity(pvtkey);
session = jsch.getSession(user, connectionURL, 22);
Properties config = new Properties();
config.put("StrictHostKeyChecking", "no");
session.setConfig(config);
session.connect();
...some other code that never gets called
}catch(JSchException e){
log.info(e.getMessage());
log.error(e.getCause());
}
我加了一些日志,所以我知道故障发生的事情为session.connect()。我抓住了用户和connectionURL并确认他们正在被正确传入。 pvtkey和known_hosts的路径是完整的unix路径,我保存密钥和主机文件,我已将其移至保存脚本的目录,以启动此过程。我对sftp还是有点新意,即使我没有将它添加到Jsch连接中,我的公钥是否也必须位于同一个目录中?有什么方法可以获得有关我失败的更多信息吗?
感谢