使用JSch访问Sftp有时候会报异常:reject HostKey,有两种方式可以解决该异常。
1.创建实现com.jcraft.jsch.UserInfo的实体类,且该实体类必须存在一个public型无参构造函数;
2.设置强制HostKey检查为no。
实现com.jcraft.jsch.UserInfo的实体类:
/** * */ package sftp; import com.jcraft.jsch.UserInfo; /** * @author lxzqz * */ public class SFtpUserInfo implements UserInfo { /** * 构造函数,此构造函数不可少 */ public SFtpUserInfo() { } public String getPassword() { return null; } public boolean promptPassword(String arg0) { return false; } public boolean promptPassphrase(String arg0) { return false; } public boolean promptYesNo(String arg0) { return true; } public void showMessage(String arg0) { } @Override public String getPassphrase() { return null; } }
使用第一种方式连接Sftp和使用第二种方式连接Sftp的代码如下:
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 Sftp { public static void sftpUserInfo() throws Exception{ JSch js = new JSch(); //sftp用户名、ip、端口 Session session = js.getSession("test", "172.16.2.183", 10086); //sftp密码 session.setPassword("test"); //创建一个用户 session.setUserInfo(new SFtpUserInfo()); session.connect(); Channel channel = session.openChannel("sftp"); channel.connect(); ChannelSftp cmd = (ChannelSftp)channel; //cmd各种命令操作sftp //释放资源 channel.disconnect(); session.disconnect(); } public static void strictHostKeyChecking() throws Exception{ JSch js = new JSch(); //sftp用户名、ip、端口 Session session = js.getSession("test", "172.16.2.183", 10086); //sftp密码 session.setPassword("test"); //设置强制HostKey检查为no Properties config = new Properties(); config.put("StrictHostKeyChecking", "no"); session.setConfig(config); session.connect(); Channel channel = session.openChannel("sftp"); channel.connect(); ChannelSftp cmd = (ChannelSftp)channel; //cmd各种命令操作sftp //释放资源 channel.disconnect(); session.disconnect(); } }
相关推荐
JSCH主要关注SFTP服务,它是在SSH协议上运行的一种文件传输协议,提供了更安全的文件操作方式。 **JSCH库的使用** JSCH库包含了一系列的类和接口,用于构建SSH连接。以下是一些关键的类: 1. `...
在本文中,我们将深入探讨JSch库的核心功能,以及如何使用它来实现SFTP(Secure File Transfer Protocol)。 **SSH协议基础** SSH是一种网络协议,用于加密网络通信,确保数据在传输过程中的安全性。它常用于远程...
在Java中,我们可以利用开源库JSCH(Java Secure Channel)来实现SFTP功能。 JSCH是一个纯Java实现的SSH2库,它提供了SSH2协议的实现,包括SFTP服务。该库的核心功能是创建加密的通道,用于执行命令、打开Shell会话...
基于jsch包实现远程服务器的sftp访问,并可远程发送命令执行,可以配合https://download.csdn.net/download/u011230766/10710755,实现密钥登录,类KeyGen用于生成非对称密钥
该问题是由于SFTP协议的编码问题所致,可以通过设置编码方式来解决该问题。例如,可以使用UTF-8编码来解决乱码问题。 SFTP协议是一种安全的文件传输协议,提供了可靠的文件传输机制。通过JSch库,可以在Java应用...
JSCH,全称为Java Simple SSH,是一个开源的Java库,用于实现SSH2协议,以便在Java应用程序中进行安全的远程文件传输、shell访问以及端口转发。JSCH库广泛应用于需要与支持SSH2的服务器进行交互的场景,例如SFTP...
8. **安全特性**:除了SFTP本身的加密特性,WebMethods SFTP客户端可能还支持密钥对认证、密码认证等安全机制,确保只有授权用户能够访问系统。 9. **API集成**:WebMethods平台允许与其他系统和应用进行深度集成,...
通过这种方式,我们可以在Java程序中利用JSch库实现SFTP无密码访问,提高系统的安全性。总的来说,理解和熟练运用SFTP以及相关的工具和API对于IT专业人士来说是非常重要的,尤其是在处理敏感数据和远程文件操作时。
JSCH(Java Simple Connection)是一个Java库,用于实现SSH(Secure Shell)、SFTP(Secure File Transfer Protocol)和Telnet协议。这些协议在IT领域中扮演着重要的角色,尤其是在远程访问、文件传输和网络安全方面...
Java中的JSCH库(JSch)是实现SSH连接的开源库,它提供了全面的功能,包括SFTP(SSH File Transfer Protocol)、SCP(Secure Copy)以及shell会话等。在本文中,我们将深入探讨如何使用JSch-0.1.54.jar这个库来实现...
3. **端口转发**: 通过JSch,可以设置本地或远程端口转发,这在穿透防火墙或者访问受限制的服务时特别有用。 4. **公钥认证与密码认证**: JSch支持使用RSA、DSA等公钥算法进行身份验证,也可以使用密码进行认证,为...
一旦SSH连接建立,我们可以创建一个SFTP通道,这将让我们访问远程文件系统: ```java ChannelSftp sftpChannel = (ChannelSftp) session.openChannel("sftp"); sftpChannel.connect(); ``` **文件上传**: 在SFTP...
SSH是一种网络协议,用于加密网络通信,确保数据传输的安全性,广泛应用于远程终端访问、文件传输和命令执行等场景。 **JSCH库介绍** JSCH(Java Secure Channel)是Simon Stuart开发的一个开源项目,它提供了一种...
2. **SFTP(Secure File Transfer Protocol)**:JSch支持SFTP子协议,可以安全地上传、下载文件,管理远程目录,实现类似于FTP的功能。 3. **SCP(Secure Copy)**:JSch也提供了SCP命令的功能,可以实现文件和...
1. **身份验证**:JSch支持多种身份验证方式,包括基于口令的认证、公钥私钥对的RSA/DSA/ECDSA认证以及键盘交互式认证,确保了数据传输的安全性。 2. **加密通信**:SSH协议本身提供强大的加密机制,JSch利用这些...
6. **错误处理与异常安全**: 在实现SFTP访问时,需要捕获并适当地处理可能抛出的异常,如`JSchException`、`FileNotFoundException`等,确保程序的健壮性。 至于文件名称"prov-front-njcb",它可能是某个前端项目的...
JSch库提供了连接到SFTP服务器、创建会话、打开通道、传输文件等方法。上传文件通常涉及以下步骤: 1. 创建JSch实例并设置用户凭据(如主机名、端口号、用户名和密码)。 2. 建立到SFTP服务器的连接。 3. 打开SFTP...
3. **SFTP文件传输**:jsch还支持Secure File Transfer Protocol (SFTP),可以安全地上传、下载文件或目录,进行文件管理操作,如重命名、删除等。 4. **端口转发**:通过jsch,可以设置本地或远程端口转发,将一个...
JSCH(Java Secure Channel)是Java中一个用于实现SSH(Secure Shell)协议的库,它允许开发者在Java应用中创建安全的通道进行远程操作,如SFTP文件传输、端口转发等。版本1.54是这个库的一个更新,可能包含了一些...
1. **连接与认证**:JSCH库可以连接到任何支持SSH2的服务器,并提供多种身份验证方式,包括密码认证、公钥认证和键盘交互式认证。 2. **会话管理**:创建SSH会话,执行远程命令,监控命令输出,甚至支持shell交互...