在尝试将文件上传到我们的服务器时,出现以下异常
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 许可协议
追根溯源,终于发现dsa类型的公钥没有添加到远程服务器的授权密钥中。附加相同的内容对我有用。
ssh 正在使用 rsa 密钥,这让我回顾了我的代码。
感谢大家。