当前位置: 首页 > 知识库问答 >
问题:

JSCHException:身份验证失败和指纹

奚光霁
2023-03-14

我正在尝试从Java脚本连接到我的SFTP服务器。我是为了我的目的而使用JSch lib。用户名、密码和主机名正确,但我得到一个:Auth fail错误。

我还尝试在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个答案

柳宪
2023-03-14

您的网络/SMTP服务器支持IP6吗?如果您的客户端支持IP6,Java的较高版本默认为IP6,但许多SMTP服务器都配置在IP4上。有关如何配置JVM以强制IP4的说明,请参阅本文,了解如何使用JSP发送电子邮件。这需要在实例化JVM时在JVM上设置。

 类似资料:
  • Tweepy API请求twitter return me Twitter错误响应:状态代码=401。 这是我的实际代码: 我曾试图用tweepy软件包删除推文,并获得了所有必需的密钥。镊子包装不起作用吗?有人能帮我解决这个问题吗。

  • 问题内容: 尝试使用JavaMail中的NTLM连接到Exchange服务器。我可以连接到SMTP,但不能连接到IMAP。我还可以使用相同的主机/用户名/密码通过OS X Mail.app应用程序进行身份验证,帐户类型=“ IMAP”,端口143,ssl = false,authentication = NTLM,域名=“。 连接代码: 输出: 我尝试通过http://www.oracle.com

  • 我相对来说是JMeter的新手,但是我很难让HTTP Sampler登陆到一个安全的网页上。我认为它需要NTLM认证,所以我使用HTTP授权管理器来传递BlazeMeter指南中指定的凭证 我的授权管理器具有以下值: 基本网址: https:// [测试站点] 用户名: [我的用户名] 密码: [我的密码] 域:与基本网址相同 机制: BASIC_DIGEST 然而,我只是得到一个401错误(见下

  • 我对詹金斯和一个詹金斯奴隶有一个奇怪的问题。我的构建使用Maven发布插件。项目从Subversion存储库中签出。稍后在构建过程中,Maven发布插件尝试向我的项目pom.xml提交一些更改。正是在这里,这个过程有时会在詹金斯奴隶身上失败。每当它失败时,我需要在主服务器上再次运行构建,然后再在Jenkins从服务器上运行。 null

  • 我的用户需要根据他的Git存储库验证他的私钥。它类似于任何DB客户端工具中的“测试连接”按钮。 我在Java使用JSCH进行此验证(我只需要使用SSH连接并告诉连接成功)。下面是我的Java代码 我得到以下例外。 我引用了所有其他SO论坛,给出的解决方案是在相应的服务器中添加公钥。我做到了这一点,并且能够使用SSH命令成功地进行身份验证(如下所述)。但我无法使用JSCH实现同样的效果。请帮忙

  • 但我有以下错误 {“错误”:{“代码”:403,“消息”:“来自此ios客户端应用程序的请求被阻止。”,“错误”:[{“消息”:“来自此ios客户端应用程序的请求被阻止。”,“域”:“全局”,“原因”:“禁止”}],“状态”:“允许_Denied”}} 我已经实现了这一点,正如文档中所示。 下面是AppDelegate.swift的代码: 下面是ViewController.swift的代码: