"Auth fail"錯誤通常意味著SFTP服務器拒絕了您的身份驗證憑據。這可能是由于以下幾個原因引起的:
錯誤的用戶名或密碼:請確保在連接SFTP服務器時使用了正確的用戶名和密碼。
SFTP服務器未啟用:某些SFTP服務器默認情況下可能未啟用。請確保您的SFTP服務器已正確配置并正在運行。
SSH密鑰問題:如果SFTP服務器要求使用SSH密鑰進行身份驗證,您需要確保密鑰文件存在,并且您的Java程序正確指定了密鑰文件路徑。
下面是一個使用jsch包連接SFTP服務器的示例代碼:
import com.jcraft.jsch.*;
public class SFTPExample {
public static void main(String[] args) {
String host = "sftp.example.com";
int port = 22;
String username = "your-username";
String password = "your-password";
try {
JSch jsch = new JSch();
Session session = jsch.getSession(username, host, port);
session.setPassword(password);
session.setConfig("StrictHostKeyChecking", "no");
session.connect();
Channel channel = session.openChannel("sftp");
channel.connect();
ChannelSftp sftpChannel = (ChannelSftp) channel;
// 在這里執行SFTP操作
sftpChannel.exit();
session.disconnect();
} catch (JSchException | SftpException e) {
e.printStackTrace();
}
}
}
請確保替換示例代碼中的主機名、端口號、用戶名和密碼為您自己的正確信息。如果問題仍然存在,請檢查上述可能引起錯誤的因素,并確保您可以使用相同的憑據成功地連接到SFTP服務器。