java - JSchException : Auth fail and fingerprint

标签 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中放入什么?我的服务器 key 的指纹?

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();
  }         
 }

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

最佳答案

您的网络/SMTP 服务器支持 IP6 吗?如果您的客户端支持 IP6,则更高版本的 Java 默认为 IP6,但许多 SMTP 服务器配置为 IP4。 See this article here for Sending email using JSP for directions on configuring your JVM to force IP4.这需要在实例化时在 JVM 上进行设置。

关于java - JSchException : Auth fail and fingerprint,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21048281/

相关文章:

java - 使用公钥的 sftp 无法正常工作

java - 使用 JSCH 从 Java 使用 "more"命令时删除特殊字符?

java - 使用 JSCH 设置目录权限 CHMOD

java - 为什么Java找不到符号

java - 为 JGit 指定 SSH key

java - 使用java将文件从unix传输到windows

java - Angular 2 与现有 Java 应用程序

java - 在 jsp 中显示来自 struts2 操作变量路径的图像

java - Android - 使用 JSOUP 实现具有 AsyncTask 的 ListView

java - Hashmap员工存储的编辑方法