【发布时间】:2013-01-24 00:25:44
【问题描述】:
我正在尝试使用 JSCH 库版本 0.1.49 连接到 SFTP 远程服务器。每次我运行程序时都会收到以下错误:
Initializing...
Connection to SFTP server is successfully
com.jcraft.jsch.JSchException: Unable to connect to SFTP server.com.jcraft.jsch.JSchException: failed to send channel request
at shell.MainClass.JschConnect(MainClass.java:95)
at shell.MainClass.main(MainClass.java:30)
第 30 行是:sftpChannel.connect() 来自以下代码:
System.out.println("Initializing...");
JSch jsch = new JSch();
Session session = null;
try {
session = jsch.getSession(ProjectConstants.rmUsername,ProjectConstants.rmHost, 22);
session.setPassword(ProjectConstants.rmPassword);
java.util.Properties config = new java.util.Properties();
config.put("StrictHostKeyChecking", "no");
session.setConfig(config);
session.connect();
if (session.isConnected() == true) {
System.out.println("Connection to SFTP server is successfully");
}
ChannelSftp sftpChannel = (ChannelSftp) session.openChannel("sftp");
try {
sftpChannel.connect();
} catch (Exception e) {
throw new JSchException("Unable to connect to SFTP server. "
+ e.toString());
}
我使用的凭据是正确的(它通过 FileZilla 使用相同的数据进行连接),并且我还禁用了该服务器的代理(无论是否使用代理,我都会遇到相同的错误)
如果有人可以帮助我,我将不胜感激,因为我已经被这个错误困扰了大约一周...
谢谢。
【问题讨论】:
-
确保在您尝试连接的机器上安装并运行
sftp。