com.jcraft.jsch.JSchException: Auth fail

背景服务器信息: 服务器A:10.102.110.1 服务器B:10.102.110.2 需要从服务器A通过Sftp传输文件到服务器B。应用项目中有一个功能,要通个关Sftp进行日志文件的传输,在部署的时候,服务器之间已经配置了免认证(密),也就sftp免密登录,但是部署完项目后,启动服务,在需要传输的时候还是报了下面的错误: com.jcraft.jsch.JSchExcep…

大家好,又见面了,我是全栈君。

背景

  • 服务器信息:
    服务器A:10.102.110.1
    服务器B:10.102.110.2
    需要从服务器A通过Sftp传输文件到服务器B。

应用项目中有一个功能,要通个关Sftp进行日志文件的传输,在部署的时候,服务器之间已经配置了免认证(密),也就sftp免密登录,但是部署完项目后,启动服务,在需要传输的时候还是报了下面的错误:
com.jcraft.jsch.JSchException: Auth fail

14:26:12.704 [pool-1-thread-1] ERROR fileTransfer - connect to server failed:
com.jcraft.jsch.JSchException: Auth fail
	at com.jcraft.jsch.Session.connect(Session.java:519) ~[jsch-0.1.54.jar:na]
	at com.jcraft.jsch.Session.connect(Session.java:183) ~[jsch-0.1.54.jar:na]
	at com.shop.core.log.transfer.SftpFileTransfer.connect(SftpFileTransfer.java:64) ~[livechat-core-0.0.1-SNAPSHOT.jar:na]
	at com.shop.core.log.transfer.FileTransferExecutor.processFile(FileTransferExecutor.java:96) [livechat-core-0.0.1-SNAPSHOT.jar:na]
	at com.shop.core.log.transfer.FileTransferExecutor.access$000(FileTransferExecutor.java:26) [livechat-core-0.0.1-SNAPSHOT.jar:na]
	at com.shop.core.log.transfer.FileTransferExecutor$1.run(FileTransferExecutor.java:48) [livechat-core-0.0.1-SNAPSHOT.jar:na]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) [na:1.7.0_67]
	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:304) [na:1.7.0_67]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178) [na:1.7.0_67]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [na:1.7.0_67]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_67]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_67]
	at java.lang.Thread.run(Thread.java:745) [na:1.7.0_67]
14:26:12.705 [pool-1-thread-1] ERROR fileTransfer - Connect to 10.102.110.7 failed, cannot transfer data files!
14:26:22.768 [pool-1-thread-1] ERROR fileTransfer - connect to server failed:
com.jcraft.jsch.JSchException: Auth fail
	at com.jcraft.jsch.Session.connect(Session.java:519) ~[jsch-0.1.54.jar:na]
	at com.jcraft.jsch.Session.connect(Session.java:183) ~[jsch-0.1.54.jar:na]
	at com.shop.core.log.transfer.SftpFileTransfer.connect(SftpFileTransfer.java:64) ~[livechat-core-0.0.1-SNAPSHOT.jar:na]
	at com.shop.core.log.transfer.FileTransferExecutor.processFile(FileTransferExecutor.java:96) [livechat-core-0.0.1-SNAPSHOT.jar:na]
	at com.shop.core.log.transfer.FileTransferExecutor.access$000(FileTransferExecutor.java:26) [livechat-core-0.0.1-SNAPSHOT.jar:na]
	at com.shop.core.log.transfer.FileTransferExecutor$1.run(FileTransferExecutor.java:48) [livechat-core-0.0.1-SNAPSHOT.jar:na]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) [na:1.7.0_67]
	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:304) [na:1.7.0_67]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178) [na:1.7.0_67]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [na:1.7.0_67]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_67]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_67]
	at java.lang.Thread.run(Thread.java:745) [na:1.7.0_67]
14:26:22.768 [pool-1-thread-1] ERROR fileTransfer - Connect to 10.102.110.7 failed, cannot transfer data files!

解决过程

1、 检查 配置参数比如用户名和密码等配置错误

这里就不做过多说明,自己去查看连接sftp的配置时候正确。

2、查看服务器之间sftp免密登录配置是否OK

遇到 Auth fail 认证失败,那么第一个要排查的就是 服务器的SSH免密登录配置是否OK,在10.102.110.1 服务器A 通过下面命令:

ssh shop@10.102.110.2

  • shop : 用户名
  • 10.102.110.2:服务器ip

输入命令后,不需要输入密码即可连接成功服务器B。那说明免密配置是OK!

3、检查 配置项PasswordAuthentication

在/etc/ssh/sshd_config文件夹的一个配置项PasswordAuthentication 默认为no!
“PasswordAuthentication”设置是否允许口令验证,把它改为yes,重启服务就OK了。

我查看了10.102.110.2服务器B配置发现也没有问题。PasswordAuthentication配置的就是yes。

4、看Session.connect 是否设置连接超时

查看代码发现代码中,connect为默认构造。

//省略其他代码
this.sshSession.connect();
//省略其他代码

看了一下源码,觉得这个连接超时时候要设置,默认是0!
于是修改为下面代码

// 设置登陆超时时间,不设置可能会报错
this.sshSession.connect(1500);

重启服务后,发现正常了,可以连接成功了!也没有在报错了!

总结

一个问题的出现,可能的原因会有很多,不能因为问题出现了而乱了手脚,要有排查问题的思路,一步步来,最终问题一定会解决的。

参考

基于jsch的SFTP文件上传下载的java工具类
JSCH连接SFTP服务报错: Auth fail


如果您觉得这篇博文对你有帮助,请点赞或者喜欢,让更多的人看到,谢谢!

如果帅气(美丽)、睿智(聪颖),和我一样简单善良的你看到本篇博文中存在问题,请指出,我虚心接受你让我成长的批评,谢谢阅读!
祝你今天开心愉快!


欢迎访问我的csdn博客,我们一同成长!

不管做什么,只要坚持下去就会看到不一样!在路上,不卑不亢!

博客首页 : http://blog.csdn.net/u010648555

© 每天都在变得更好的阿飞

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/121069.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • OpenCV学习笔记(29)KAZE 算法原理与源码分析(三)特征检测与描述

    OpenCV学习笔记(29)KAZE 算法原理与源码分析(三)特征检测与描述KAZE系列笔记:1. OpenCV学习笔记(27)KAZE算法原理与源码分析(一)非线性扩散滤波2. OpenCV学习笔记(28)KAZE算法原理与源码分析(二)非线性尺度空间构建3. OpenCV学习笔记(29)KAZE算法原理与源码分析(三)特征检测与描述4. OpenCV学习笔记(30)KAZE算法原理与源码分析(四)KAZE特征的性能分析与比较5. OpenCV学习笔记

    2022年6月18日
    39
  • 使用CSS画一个三角形

    使用CSS画一个三角形使用CSS画一个三角形

    2022年6月15日
    29
  • APP测试基本流程以及APP测试要点梳理,保证您看了不后悔!

    APP测试基本流程以及APP测试要点梳理,保证您看了不后悔!前言:相信很多刚刚步入测试行业的小伙伴对于APP测试不是很熟悉,这次我为大家提供一篇宝藏文章,希望大家喜欢,谢谢!一、APP测试基本流程1、流程图2、测试周期测试周期可按项目的开发周期来确定测试时间,一般测试时间为两三周(即15个工作日),根据项目情况以及版本质量可适当缩短或延长测试时间。3、测试资源测试任务开始前,检查各项测试资源。–产品功能需求文档;–产品原型图;–产品效果图;–测试设备;–其他。4、日报及产品上线报告(内部报告机制)–测试人员每天需对所测项目发送测试日报。(

    2022年5月5日
    112
  • win10任务栏图标显示白色方块_win10图标左下角有白色方块

    win10任务栏图标显示白色方块_win10图标左下角有白色方块首先打开一个文件夹点击【查看】菜单,然后勾选【隐藏的项目】;使用【Win】+【R】打开【运行】输入%localappdata%;删除【Iconcache.db】;在任务栏右键的打开【任务管理器】;找到【Windows资源管理器】右键选择【重新启动】。…

    2022年8月31日
    5
  • 运行程序时”提示找不到zlib1.dll,无法继续执行代码”的解决方法

    运行程序时”提示找不到zlib1.dll,无法继续执行代码”的解决方法解决办法如下:1.下载zlib1.dll:zlib1.dll下载链接2.解压后放到系统目录中32位系统:放到C:\Windows\System32\64位系统:放到C:\Windows\SysWOW64\

    2022年7月26日
    115
  • ubuntu安装python3_在Ubuntu中安装Python3

    ubuntu安装python3_在Ubuntu中安装Python3原博文2012-09-2517:15−首先,通过命令行安装Python3.2,只需要在终端中通过命令行安装即可:sudoapt-getinstallpython3一路yes。因为Ubuntu很多底层采用的是Python2.*,Python3和Python2是互相不兼容的,所以此时不能卸载Python2,需要将默认Pyth…154567相关推荐2017-12-2722:00…

    2022年6月23日
    41

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号