开发者社区> 问答> 正文

JSCH连接SFTP服务报错: Auth fail ?报错

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

展开
收起
爱吃鱼的程序员 2020-06-23 20:58:05 7338 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    请尝试

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

    PasswordAuthenticationyes

    如果还不行,可以参考 sftpauthfail或者 SFTP连接异常CouldnotconnecttoSFTPserver.Causedby:com.jcraft.jsch.JSchException:Authfail

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

    privatestaticSessiongetSession(Stringuser,Stringpasswd,Stringhost,intport)throwsJSchException{JSchjsch=newJSch();Sessionsession=jsch.getSession(user,host,port);session.setConfig("StrictHostKeyChecking","no");//不验证host-key,验证会失败。session.setPassword(passwd);session.connect();returnsession;}

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

    2020-06-23 20:58:23
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载