JSchException:Auth失败和指纹

时间:2014-01-10 15:35:53

标签: java jsch

我正在尝试从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();
  }         
 }

你有什么建议吗?提前谢谢!

1 个答案:

答案 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实例化时设置。