1
我想使用本地主機作爲SFTP服務器。我使用Java的Jsch庫來實現SSH2的SFTP。以下代碼使用sftp將文本文件上載到本地計算機上的目錄。 但我無法連接到本地主機。在sftp服務器拒絕連接
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();
}
}
}
你有一臺SSH服務器在本地主機上運行和監聽嗎? – 2014-10-27 15:58:49
是的我已經在本地主機上安裝了ssh服務器。 – Sam 2014-10-27 16:00:03
你有沒有試過在這個程序之外的ssh localhost?如果連接被拒絕,那就意味着它不能連接到你的ssh服務器。 – 2014-10-27 16:00:48