场景:Java代码将字符串转流,用SFTP工具类上传到SFTP服务器
模拟:自己在Linux服务器搭建了SFTP
问题:com.jcraft.jsch.JSchException: java.net.ConnectException: Connection refused: connect
代码:
SFTP工具类中的连接SFTP服务器方法,每次都在sshSession.connect()报错
ChannelSftp sftp = null;
try {
JSch jsch = new JSch();
//jsch.getSession(username, host, port);
Session sshSession = jsch.getSession(username, host, port);
System.out.println("Session created.");
sshSession.setPassword(password);
Properties sshConfig = new Properties();
sshConfig.put("StrictHostKeyChecking", "no");
sshSession.setConfig(sshConfig);
sshSession.connect();
System.out.println("Session connected.");
System.out.println("Opening Channel.");
Channel channel = sshSession.openChannel("sftp");
channel.connect();
sftp = (ChannelSftp) channel;
System.out.println("Connected to " + host + ".");
} catch (Exception e) {
e.printStackTrace();
}
后续:报错原因:主机连接不上改ip或端口 ,linux的sftp端口基本上都是22,需要注意。