0
我可以使用指定的憑據成功連接到WinSCP到SFTP服務器。但是,使用Apache VFS從Java做的時候,我得到錯誤:與apache vfs的SFTP連接失敗,但使用WinSCP成功
Caused by: org.apache.commons.vfs2.FileSystemException: Could not connect to SFTP server at "sftp://username:***@server_addres/".
at org.apache.commons.vfs2.provider.sftp.SftpClientFactory.createConnection(SftpClientFactory.java:170)
at org.apache.commons.vfs2.provider.sftp.SftpFileProvider.doCreateFileSystem(SftpFileProvider.java:97)
... 22 more
Caused by: com.jcraft.jsch.JSchException: Auth fail
at com.jcraft.jsch.Session.connect(Session.java:512)
at com.jcraft.jsch.Session.connect(Session.java:183)
at org.apache.commons.vfs2.provider.sftp.SftpClientFactory.createConnection(SftpClientFactory.java:166)
我已經檢查證書,他們是那些完全一樣,當我嘗試使用WinSCP賦予連接。 WinSCP可以連接成功,但我的Java代碼獲得上述錯誤(Auth失敗)。
有沒有人有一些線索可能是什麼問題?
我連接的計算機的公有IP範圍已作爲另一方的可信IP添加到防火牆例外中。
請大家幫忙,任何想法都非常感謝。
親切的問候,
misamas
:
所以將溶液將其傳遞給manager.resolveFile()方法是這樣的(以與它的十六進制代碼%25來代替密碼的%符號在URI)之前做UriParser.encode(sftpUri)您可以檢查ssdh服務器的日誌文件並查看它抱怨的內容。也許它確實需要另一種身份驗證方法或嘗試首先建立一些tty或其他設置。 – eckes