
Sftp访问方式JSch
创建实现 实现必要的方法:覆盖 创建配置实例:使用 设置
发布日期:2021-05-08 09:45:26
浏览次数:19
分类:精选文章
本文共 1931 字,大约阅读时间需要 6 分钟。
JSch访问Sftp时的HostKey异常解决方案
在使用JSch库连接Sftp服务器时,可能会遇到HostKey异常的问题。这种异常通常是由于主机密钥验证失败引起的。以下是解决此问题的两种主要方法:
方法一:创建UserInfo实体类
com.jcraft.jsch.UserInfo
的实体类:确保该类存在一个无参的公共构造函数。getPassphrase()
和promptYesNo()
等方法,以符合Sftp协议的要求。以下是一个示例实现:
package sftp;import com.jcraft.jsch.UserInfo;public class SFtpUserInfo implements UserInfo { public SFtpUserInfo() { // 无需初始化内容 } @Override public String getPassword() { return null; } @Override public boolean promptPassword(String arg0) { return false; } @Override public boolean promptPassphrase(String arg0) { return false; } @Override public boolean promptYesNo(String arg0) { return true; } @Override public void showMessage(String arg0) { // 显示信息 } @Override public String getPassphrase() { return null; }}
方法二:设置严格主机密钥检查为“否”
Properties
配置文件。StrictHostKeyChecking
为“否”:这将禁用主机密钥验证。以下是使用第二种方法的代码示例:
package sftp;import java.util.Properties;import com.jcraft.jsch.Channel;import com.jcraft.jsch.ChannelSftp;import com.jcraft.jsch.JSch;import com.jcraft.jsch.Session;public class SftpClient { public static void main(String[] args) throws Exception { JSch js = new JSch(); Session session = js.getSession("username", "ip地址", "端口"); session.setPassword("密码"); Properties config = new Properties(); config.put("StrictHostKeyChecking", "no"); session.setConfig(config); session.connect(); Channel channel = session.openChannel("sftp"); channel.connect(); ChannelSftp cmd = (ChannelSftp) channel; // 执行Sftp命令 cmd.get("remote文件路径", "本地文件路径"); channel.disconnect(); session.disconnect(); }}
注意事项
- UserInfo类:确保其无参构造函数存在,并覆盖所有必要的方法。
- 配置文件:在连接时设置
StrictHostKeyChecking
为“否”以禁用主机密钥检查。
通过以上两种方法,可以有效解决JSch在Sftp连接时出现的HostKey异常问题。
发表评论
最新留言
很好
[***.229.124.182]2025年03月28日 00时27分51秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
基于Mustache实现sql拼接
2019-03-06
POJ 2260 Error Correction 模拟 贪心 简单题
2019-03-06
gRPC在 ASP.NET Core 中应用学习(一)
2019-03-06
@SuppressWarnings 用法
2019-03-06
看完你就明白的锁系列之锁的状态
2019-03-06
看完这篇操作系统,和面试官扯皮就没问题了
2019-03-06
我的价值观
2019-03-06
一文详解 Java 并发模型
2019-03-06
值类型与引用类型(中)
2019-03-06
MSSQL 2005 数据库变成可疑状态
2019-03-06
QBlog V2.5 源码开放下载(ASP.NET 番外系列之开端)
2019-03-06
秋色园引发CPU百分百命案的事件分析与总结
2019-03-06
安装jdk并配置环境变量
2019-03-06
稀疏数组
2019-03-06
js的严格模式
2019-03-06
idea的安装和无限期试用
2019-03-06
Oracle VM VirtualBox安装PVE虚拟机
2019-03-06
【转】如何用css限制文字长度,使溢出的内容用省略号…显示
2019-03-06
Android MediaPlayer setDataSource failed
2019-03-06