【发布时间】:2014-10-27 15:46:54
【问题描述】:
我正在尝试使用 localhost 作为 SFTP 服务器。我正在使用 Java 的 Jsch 库通过 SSH2 实现 SFTP。以下代码使用 sftp 将文本文件上传到本地计算机上的目录。 但我无法连接到 localhost。
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.OutputStream;
import com.jcraft.jsch.Channel;
import com.jcraft.jsch.ChannelSftp;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session;
public class Server{
public Server() {
}
public static void main(String[] args) {
String SFTPHOST = "localhost";
int SFTPPORT = 22;
String SFTPUSER = "root";
String SFTPPASS ="";
String SFTPWORKINGDIR = "D:\\Upload";
Session session = null;
Channel channel = null;
ChannelSftp channelSftp = null;
try{
JSch jsch = new JSch();
session = jsch.getSession(SFTPUSER,SFTPHOST,SFTPPORT);
session.setPassword(SFTPPASS);
java.util.Properties config = new java.util.Properties();
config.put("StrictHostKeyChecking", "no");
session.setConfig(config);
session.connect();
channel = session.openChannel("sftp");
channel.connect();
channelSftp = (ChannelSftp)channel;
channelSftp.cd(SFTPWORKINGDIR);
File f = new File("trial.txt");
channelSftp.put(new FileInputStream(f), f.getName());
}catch(Exception ex){
ex.printStackTrace();
}
}
}
【问题讨论】:
-
您是否已经在 localhost 上运行并监听了 SSH 服务器?
-
是的,我已经在 localhost 上安装了 ssh 服务器。
-
你试过在这个程序之外ssh localhost吗?如果连接被拒绝,则意味着它无法连接到您的 ssh 服务器。
-
SSH 服务器是否也足以支持 SSH2?
-
我确定它默认使用 SSH2。如果连接被拒绝,则意味着它根本无法连接。你可以“telnet localhost 22”吗?