我是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連接中,我的公鑰是否也必須位於同一個目錄中?有什麼方法可以獲得有關我失敗的更多信息嗎?
感謝