2 u012206025 u012206025 于 2016.01.14 15:54 提问

JSCH连接SFTP服务报错: Auth fail

手动测试SFTP连接OK,程序JSCH连接SFTP就报错com.jcraft.jsch.JSchException: Auth fail。已经确认了N遍,用户名/密码/ip配置绝对没错。求各位大神积极发言帮忙解决!!不胜感激!!图片说明

1个回答

save4me
save4me   Ds   Rxr 2016.01.15 10:42

请尝试

首先确保服务器上的/etc/ssh/sshd_config中的PasswordAuthentication设置为

PasswordAuthentication yes

如果还不行,可以参考sftp auth fail或者SFTP连接异常 Could not connect to SFTP server. Caused by: com.jcraft.jsch.JSchException: Auth fail

发现很多网上代码都指定StrictHostKeyChecking选项为no,就把代码改为下面这样:

     private static Session getSession(String user, String passwd, String host,
            int port) throws JSchException {
        JSch jsch = new JSch();
        Session session = jsch.getSession(user, host, port);
        session.setConfig( "StrictHostKeyChecking" , "no" ); // 不验证host-key,验证会失败。
        session.setPassword(passwd);
        session.connect();

        return session;
    }

这个问题其实是因为jsch进行严格的 SSH 公钥检查导致的,禁用 SSH 远程主机的公钥检查可以方便进行自动化任务执行。如果是在shell命令行下进行的自动化任务,建议采用客户端公钥认证,也就是ssh自动登录的方式。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
使用Jsch时遇到的 Auth fail 问题
在使用Jsch连接服务器的过程中,时常遇到 Auth fail 这个问题,表面的意思就是验证失败,经过搜索和实验,出现这个情况的原因可能是以下2条: 1.你所使用的用户不能进行远程登录,比如CentOS6,默认root不能进行远程登录 2.服务器的配置文件 /etc/ssh/sshd_config 中 GSSAPIAuthentication 的值是 yes 针对以上这2
jsch使用过程中遇到auth fail或者auth cancle问题
在使用Jsch连接linux服务器的过程中,有时候会遇到:com.jcraft.jsch.JSchException: Auth fail 或者 com.jcraft.jsch.JSchException: Auth cancel 问题,表面的意思就是jsch验证失败,经过探索和实验,可能的原因是以下2条: 你所使用的用户不能进行远程登录,比如CentOS6,默认root不能进
com.jcraft.jsch.JSchException: Algorithm negotiation fail
我司自动安装部署工具ideploy,使用ssh连接主机并部署业务。今天提供给一线安装规划后,安装报错,测试连接主机失败,而直接使用ssh是可以连接上主机的。查看问题错误堆栈如下: ERROR pool-4-thread-1 2015-06-15 14:28:59,852 [SSHTerminal] (connectToServer:275) The ssh is connect exceptio
使用jsch遇到鉴权失败问题
项目开发中使用的是微服务,并且是分布式部署,遇到问题要取多个服务器,多个目录上的日志,所以想做一个小工具,在windows上一键获取到linux服务器上的日志文件。 结果遇到一个连接问题,"com.jcraft.jsch.JSchException: Auth fail",实现了jsch提供的日志接口后也没有打印出很详细的信息,上网上搜了一下,是由于linux上的连接/etc/ssh/sshd_
JSCH连接SFTP Algorithm negotiation fail
请检查jar包是不是最新的,我用的是0.1.51报“Algorithm negotiation fail”,然后jsch升级到最新版0.1.53即可解决此问题。     场景:        主要是通过java程序去sftp上下载文件,发现代码一直连接不同。于是先通过SecureCrt工具连接sftp,连接通以后确保网络没有问题在通过代码连接。这边提供一下大概过程。
sftp JSCH连接sftp出现如下报错解决办法
问题描述: sftp JSCH连接sftp出现如下报错解决办法: com.jcraft.jsch.JSchException: Session.connect: java.security.InvalidAlgorithmParameterException: Prime size must be multiple of 64, and can only range from 512 to 1
SFTP报错:com.jcraft.jsch.JSchException: session is down 上传失败
找到原因了,汗死了,原来是ChrootDirectory权限问题 我设置的路径是 ChrootDirectory /home/sftp 错误的权限如下: drwxr-xr-x. 3 root    root       4096 2月  11 11:00 apps drwx------. 4 logSftp sftp-user  4096 2月  11 15:23 logSft
ssh应用层协议原理 jsch源码探究 authfail
公司的项目需要用java实现远程登录主机,需要用的jsch jar包,但是在调用此jar包的接口的时候,总是会不经意间出现一些错误: auth faile ; 但传递的用户名和密码是正确的,这可如何是好,由于这个远程方问接口是由我维护的,所以现在这个侦查原因的重任就落在的我的身上。起初通过debug 跟踪代码发现是在创建session时抛出的异常,可是这个问题很有随机性,我在debug时就无法复现
com.jcraft.jsch.JSchException: channel is not opened解决方案
在一个批量下载文件的程序时,发现下载的文件出错,最多只能下载10个文件,剩下的文件丢失了,查看代码,也没有逻辑上的错误,下载丢失也没报错 考虑到之前出现过前台页面传入后台的值丢失,然后在后台对前台输入的信息进行println,发现数据未丢失,也未传2次而多出null,Session session = connection.getSession(user, ip, port); ChannelE
主机ssh升级到6.7以上版本后,使用jsch jar包ssh连接不上报Algorithm negotiation fail问题的解决办法
ssh连接问题是由于主机ssh中缺少与jsch jar包匹配的加密算法导致,jsch jar包的默认加密算法貌似是diffie-hellman-group-exchange-sha1。 在目标主机ssh服务的sshd_config文件中添加下列加密算法并重启ssh服务即可解决ssh连接问题。 KexAlgorithms diffie-hellman-group1-sha1,diffie-h