我正在尝试从Java脚本连接到我的SFTP服务器。 我正在使用JSch lib。用户名,密码和主机名是正确的,但我得到:验证失败错误。
我还尝试在session.connect()之前添加以下行,但问题仍然存在。
java.util.Properties config = new java.util.Properties();
config.put("StrictHostKeyChecking", "no");
session.setConfig(config);
我需要在knownhosts.txt中添加什么内容?我服务器密钥的指纹?
public static void upload(ArrayList<File> a) {
try{
JSch jsch = new JSch();
jsch.setKnownHosts("knownhosts.txt");
Session session = jsch.getSession("username", "hostname", 22);
session.setPassword("mypassword");
session.connect();
Channel channel = session.openChannel("sftp");
channel.connect();
ChannelSftp channelSftp = (ChannelSftp) channel;
channelSftp.cd("/var/www/");
for(File object: a){
channelSftp.put(new FileInputStream(object), object.getName(), channelSftp.OVERWRITE);
}
channelSftp.exit();
session.disconnect();
} catch (Exception ex) {
ex.printStackTrace();
}
}
你有什么建议吗?提前谢谢!
答案 0 :(得分:0)
您的网络/ SMTP服务器是否支持IP6?如果您的客户端支持IP6,则Java的更高版本默认为IP6,但在IP4上配置了许多SMTP服务器。 See this article here for Sending email using JSP for directions on configuring your JVM to force IP4.这需要在JVM实例化时设置。