SFTP连接异常 Could not connect to SFTP server. Caused by: com.jcraft.jsch.JSchException: Auth fail_connecting to sftp server "192.168.50.72
作者:你好赵伟 | 2024-06-03 01:23:34
赞
踩
connecting to sftp server "192.168.50.72
连接SFTP服务器时总是抛出以下异常,而且自己也在本地测试800多遍了都没有任何问题,就是在Linux平台下出现的 org.apache.commons.vfs.FileSystemException: Could not connect to SFTP server at "168.22.73.69". at org.apache.commons.vfs.provider.sftp.SftpClientFactory.createConnection(SftpClientFactory.java:214) at com.wxcking.admins.util.sftp.SFTPUtil.connectServer(SFTPUtil.java:270) at com.wxcking.admins.util.sftp.SFTPUtil.<init>(SFTPUtil.java:66) at com.wxcking.admins.util.SftpConnectUtil.connectSupBankSftp(SftpConnectUtil.java:36) at com.wxcking.admins.redeem.service.RedemptionBankService.uploadRegulatoryBank(RedemptionBankService.java:285) at com.wxcking.admins.redeem.service.RedemptionBankService
FastClassByCGLIB
864fe42a.invoke(<generated>) at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:627) at com.wxcking.admins.redeem.service.RedemptionBankService
EnhancerByCGLIB
b98834a5.uploadRegulatoryBank(<generated>) at com.wxcking.manage.contract.service.adminsRedeemCollectService.processCollect(adminsRedeemCollectService.java:89) ... ... Caused by: 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 org.apache.commons.vfs.provider.sftp.SftpClientFactory.createConnection(SftpClientFactory.java:210) ... 111 more 这种异常主要是看Caused by后面的 com.jcraft.jsch.JSchException: Auth fail,报的是 Caused by: com.jcraft.jsch.JSchException: Auth fail验证失败。另外,使用FlashFXP等工具连接SFTP时都没有问题,使用Java写的程序连接出现Auth fail异常。 从网上查询到解决的方法: 第一种说法是配置参数比如用户名和密码等配置错误。 第二说法是在/etc/ssh/sshd_config文件夹的一个配置项PasswordAuthentication 默认为no,“PasswordAuthentication”设置是否允许口令验证,把它改为yes,重启服务就OK了。 如果您在这一步就已经解决好Auth fail异常的话,祝贺您,您太幸运了! ----------------------------------------- ----------------------------------------- ----------------------------------------- 当我把以上方法都试了以后,还是报Auth fail异常,这时要看一下SFTP连接代码了,在连接SFTP代码中加上下面代码,另外再实现一个日志类。 /** * SFTP工具类 */ public class SFTPUtil { /** * 连接SFTP服务器 * @throws JSchException * @throws FileSystemException */ private void connectServer() throws JSchException, FileSystemException { if (this.channel != null) { disconnect(); }
com.jcraft.jsch.Logger logger = new SettleLogger(); JSch.setLogger(logger);
FileSystemOptions fso = new FileSystemOptions(); SftpFileSystemConfigBuilder.getInstance().setStrictHostKeyChecking(fso, "no");