“com.jcraft.jsch.JSchException: Auth fail” 密码有效

新手上路,请多包涵

在尝试将文件上传到我们的服务器时,出现以下异常

    com.jcraft.jsch.JSchException: Auth fail
        at com.jcraft.jsch.Session.connect(Session.java:464)
        at com.jcraft.jsch.Session.connect(Session.java:158)
        at FtpService.transferFileToReciever(FtpService.java:80)
        at FtpService.transferFileToReciever(FtpService.java:54)
        at FtpService.transferFileToRecievers(FtpService.java:44)
        at FtpService.transferSingeFile(FtpService.java:241)
        at FtpService.main(FtpService.java:26)
    Auth fail

源文件中函数 transferFileToReciever 的部分是

        JSch jsch = new JSch();
        jsch.addIdentity("/root/.ssh/id_dsa");
        Session session = jsch.getSession(username, host, 22);

        session.setUserInfo(serverinfo);
        session.connect(); //geting exception here

        boolean ptimestamp = true;

密码有效,因为我可以使用 ssh 登录,但使用 JSCh 即使提供了密钥、用户名和密码也不起作用。将 id_dsa 密钥与 java 版本“1.6.0_25”一起使用。可能是什么错误?

找到其他类似的问题,但没有答案。提前致谢。

原文由 vinay 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 3.7k
2 个回答

追根溯源,终于发现dsa类型的公钥没有添加到远程服务器的授权密钥中。附加相同的内容对我有用。

ssh 正在使用 rsa 密钥,这让我回顾了我的代码。

感谢大家。

原文由 vinay 发布,翻译遵循 CC BY-SA 3.0 许可协议

尝试如下显式添加 auth 方法,因为有时它是必需的:

 session.setConfig("PreferredAuthentications", "password");

原文由 Amit Pawar 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题