SFTP问题2:使用SFTP上传文件报错com.jcraft.jsch.JSchException: session is down
场景:Java代码将字符串转流,用SFTP工具类上传到SFTP服务器模拟:自己在Linux服务器搭建了SFTP问题:com.jcraft.jsch.JSchException: session is down代码:SFTP工具类中的连接SFTP服务器方法,每次都在channel.connect()报错ChannelSftp sftp = null;try {JSch jsch = new JSch
·
场景:Java代码将字符串转流,用SFTP工具类上传到SFTP服务器
模拟:自己在Linux服务器搭建了SFTP
问题:com.jcraft.jsch.JSchException: session is down
代码:
SFTP工具类中的连接SFTP服务器方法,每次都在channel.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();
}
报错原因:SFTP服务器的目录权限必须对于登录用户必须是755(drwxr-xr-x),如果是777(drwxrwxrwx),则会报错。另外,sftp服务器目录所有者必须是root。
更多推荐
已为社区贡献1条内容
所有评论(0)