首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏品茗IT

    使用JSch库进行SFTP连接

    使用JSch库进行SFTP连接 一、概述 JSch是一个Java库,用于实现SSH2协议。JSch可以用于连接SSH服务器并进行各种远程操作,如文件传输、端口转发、远程执行命令等。 JSch提供了一组接口和类,以及许多示例代码,使得连接SSH服务器非常容易。它还支持密码和密钥交换认证,并提供了丰富的错误处理机制。 使用JSch,开发人员可以轻松地在Java应用程序中实现SSH连接和远程操作。 JSch是一个开源库,由JCraft开发和维护。 连接SFTP服务器并进行文件传输,可以使用JSch库来实现。 2.2 密钥方式 如果要使用密钥方式进行SFTP连接,需要将RSA私钥添加到JSch中,而不是设置用户名和密码。 sfpt失败", e); } } } 三、使用方式升华 上面介绍了如何使用JSch库进行sftp的连接

    3.1K30编辑于 2023-10-22
  • 来自专栏后端架构

    JSCH连接ssh终端执行文件操作

    JSch是一个纯Java实现的SSH2协议的客户端库。它允许您在Java应用程序中进行安全的远程登录、文件传输和执行命令。您可以使用JSch连接到远程服务器并执行各种操作。 jsch = new JSch(); Session session = jsch.getSession(serverUser, "127.0.0.1", 22); 是一个功能强大且广泛使用的Java SSH客户端库,它提供了许多有用的功能和API,可以轻松地实现SSH连接、文件传输和执行命令等操作。 JSch的文档和示例非常详细,易于使用和理解。然而,一些用户可能会发现JSch的学习曲线比较陡峭,需要一些时间来掌握其工作原理和API。 总体而言,JSch是一个非常优秀的Java SSH客户端库,适用于各种SSH连接和文件传输方案。

    1.1K20编辑于 2023-10-25
  • 来自专栏杂烩

    jsch密钥连接远程Linux报错com.jcraft.jsch.JSchException: invalid privatekey: [B@277050dc

    jsch密钥连接远程Linux报错,信息如下: Exception in thread "main" com.jcraft.jsch.JSchException: invalid privatekey: [B@277050dc at com.jcraft.jsch.KeyPair.load(KeyPair.java:664) at com.jcraft.jsch.KeyPair.load(KeyPair.java :561) at com.jcraft.jsch.IdentityFile.newInstance(IdentityFile.java:40) at com.jcraft.jsch.JSch.addIdentity (JSch.java:407) at com.jcraft.jsch.JSch.addIdentity(JSch.java:388) at com.scc.nanny.ssh.SSH. dAzGWpRtuUIlIB97oXloovzwyMZGXWRy6yhLWJlpSYKSADXoEIQ8NuN+e33UEzeq -----END RSA PRIVATE KEY-----     我的jsch

    7.3K30发布于 2019-03-12
  • 来自专栏cwl_Java

    Java工具集-JSch连接远程服务器工具类

    代码示例 import com.jcraft.jsch.JSch; import com.jcraft.jsch.Session; /** * @program: simple_tools * @ description: 连接远程ES通道 * @author: Mr.chen * @create: 2020-04-27 13:52 **/ public class JschUtil { /** * 创建与远程跳板机的连接 */ private static void buildSession() { //bruce //rgj.nc8iei9J try { JSch jsch = new JSch(); Session session = jsch.getSession("远程跳板机的用户名称

    2.1K30发布于 2020-05-06
  • 来自专栏别先生

    jsch jar包连接不上ssh报Algorithm negotiation fail 错误

    参考:https://my.oschina.net/greatqing/blog/740179 1、jsch jar包连接不上ssh报Algorithm negotiation fail 错误 1 com.jcraft.jsch.JSchException : Algorithm negotiation fail 2 at com.jcraft.jsch.Session.receive_kexinit(Session.java:583) ~ [jsch-0.1.51.jar:na] 3 at com.jcraft.jsch.Session.connect(Session.java:320) ~[jsch-0.1.51.jar :na] 解决方法,将jsch的包升级到0.1.53解决问题,问题详情参考链接:https://my.oschina.net/greatqing/blog/740179 1 <dependency> 2 > 5 </dependency> jsch jar包连接不上ssh报Algorithm negotiation fail 错误

    3.1K10发布于 2021-10-29
  • 来自专栏工作笔记精华

    jsch channel is not opened

    Jsch使用的时候碰到一个问题, 调试后发现 ssh到服务器非常的卡, 建立查询服务器内存,可能是内存不够用了。 VFS同理。 Session created... com.jcraft.jsch.JSchException: channel is not opened. at com.jcraft.jsch.Channel.sendChannelOpen (Channel.java:765) at com.jcraft.jsch.Channel.connect(Channel.java:151) at com.jcraft.jsch.Channel.connect at com.jcraft.jsch.Channel.sendChannelOpen(Channel.java:765) at com.jcraft.jsch.Channel.connect(Channel.java at com.jcraft.jsch.Channel.sendChannelOpen(Channel.java:765) at com.jcraft.jsch.Channel.connect(Channel.java

    3.7K30发布于 2019-03-05
  • 来自专栏第三方工具

    sftp jsch文件移动备份的思路

    1.jsch jar包不支持mv cp等移动复制的功能,转换思路,sftp下载文件到本地服务器,目录可以考虑使用/年/月/日层级。 2.然后sftp下载操作完毕,记录一张文件操作表,记录下载状态。 3.在定时备份的任务中,根据文件操作表的下载状态,循环操作:首先检查本地是否该文件存在,存在则在sftp jsch rm删除该文件。 jsch支持一次mkdir一个目录,而不允许一次创建多层级目录。 } }); } catch (Exception e) { e.printStackTrace(); } 最后需处理jsch

    49710编辑于 2024-10-09
  • 来自专栏Diuut

    基于JSCH的简易服务监控服务-WatchDog

    要实现从服务中控制重启其他服务,这里就需要引入Jsch(Java Secure Channel),功能简而言之就是以java的方式通过jsch连接,来对服务器进行操作,发送短信就是阿里云sms服务,引入调用即可 </artifactId> <version>0.1.51</version> </dependency> 远程连接所需数据封装成一个实体类POJO public = 22; //远程连接服务器端口 private String userName ; // 远程连接的用户名 private String password; / 调用工具类 public class SshCmdClient { private JSch jsch; private Session session; private = new JSch(); connect(); } /** * 关闭ssh连接 */ public void close() {

    1.4K10编辑于 2022-11-22
  • 来自专栏写字母的代码哥

    使用Jsch进行安全的文件上传及下载

    导入JSch 依赖包 在maven项目pom.xml中导入如下的坐标,我们使用JSchJSch将SFTP协议封装为对应的API供我们调用。 文件传输 – JSch例子 2.1 get与put方法 在中JSch,我们可以使用put和get在服务器之间进行文件传输。put方法用来将文件从本地系统传输到远程服务器。 channelSftp.get(remoteFile, localFile); 2.2 使用用户名和密码进行认证 JSch jsch = new JSch(); jsch.setKnownHosts(" 本地私钥–/home/登录用户名/.ssh/id_rsa 远程公钥默认保存位置–~/.ssh/authorized_keys JSch jsch = new JSch(); jsch.setKnownHosts jsch = new JSch(); jsch.setKnownHosts("/home/zimug/.ssh/known_hosts"); jschSession

    3.5K20发布于 2020-10-23
  • 来自专栏别先生

    JSch - Java实现的SFTP(文件上传详解篇)

      JSch是Java Secure Channel的缩写。JSch是一个SSH2的纯Java实现。 它允许你连接到一个SSH服务器,并且可以使用端口转发,X11转发,文件传输等,当然你也可以集成它的功能到你自己的应用程序。   本文只介绍如何使用JSch实现的SFTP功能。    (来自百度的解释)   要使用JSch,需要下载它的jar包,请从官网下载它:http://www.jcraft.com/jsch/ ChannelSftp类是JSch实现SFTP核心类,它包含了所有 ; import com.jcraft.jsch.ChannelSftp; import com.jcraft.jsch.JSch; import com.jcraft.jsch.JSchException ; channel = session.openChannel("sftp"); // 打开SFTP通道 channel.connect(); // 建立SFTP通道的连接

    13.8K11发布于 2018-10-15
  • 来自专栏Java技术栈

    同事牛逼啊,写了个隐藏 bug,我排查了 3 天才解决问题!

    最近线上监控 SFTP 连接频繁爆表,通过重启某个系统,连接数迅速下降,系统就能恢复正常,初步判断是应用程序连接未关闭的问题导致的。 栈长通过 IDE 全局搜索排查,SFTP 连接使用了 jsch 包,确实有一些功能点使用了 SFTP 连接而未关闭的情况,或者不在 finally 语句块中正常关闭。 jsch = new JSch(); jsch.getSession(host, username); session = jsch.getSession(username 原因就是在该死的 for 循环中创建连接的,虽然在 finally 中进行了关闭,但是连接变量在循环中进行重建和替换,所以关闭的永远只是最后一个连接。 这个 jsch 连接包还真不行,我们来看它的源码吧,不然又是一个坑你没商量的坑。 com.jcraft.jsch.Session: ? com.jcraft.jsch.Channel: ?

    1.8K50发布于 2020-07-30
  • 来自专栏JAVA乐园

    使用Ant进行ssh和scp操作

    jsch-0.1.24。 JSch是一个SSH2的纯Java实现 JSch允许你连接到sshd server并采用端口映射,X11映射; Scp文件传输等,你可以把集成JSch提供的功能到你自己的Java项目中,JSch trust="true" command="cd /;ls" /> </target> 注意上面的trust属性一般设置为true, 如果为默认值false时,那么就要求你所连接的 执行Linux下的命令时可以用分号”;”把多个命令隔开,它们将会依次执行,而不需要写多个sshexec进行多次连接,每次连接只执行一个命令。 ; import com.jcraft.jsch.ChannelSftp; import com.jcraft.jsch.JSch; import com.jcraft.jsch.Session; import

    1.4K10编辑于 2022-06-30
  • 来自专栏全栈程序员必看

    C# 连接SFTP

    大家好,又见面了,我是你们的朋友 C# Tamir.SharpSsh连接SFTP 网上学习到C#连接SFTP方式,整理了一下,文章结尾处为具体的调用方式以及密钥文件的转换。 new JSch(); if (!"". ; ui.setPassword(pwd); m_session.setUserInfo(ui); } //SFTP连接状态 public bool Connected { get { return m_session.isConnected(); } } //连接SFTP new SFTPHelper("("sftpServerVirtualMeeting"); "); // ("sftpServerVirtualMeeting"); 为config中配置的信息 //首先连接

    2.5K40编辑于 2022-09-27
  • 来自专栏写字母的代码哥

    通过JSch运行远程linux主机上的shell脚本

    首先通过maven坐标引入JSch依赖库,我们正是通过JSch去执行远程主机上的脚本。 <dependency> <groupId>com.jcraft</groupId> <artifactId>jsch</artifactId> <version>0.1.55< ) { //脚本名称及路径,与上文要对上 String remoteShellScript = "/root/hello.sh"; Session jschSession = null; try { JSch jsch = new JSch(); //SSH授信客户端文件位置,一般是用户主目录下的.ssh/known_hosts jsch.setKnownHosts("/home/zimug/.ssh/known_hosts "); jschSession = jsch.getSession(USERNAME, REMOTE_HOST, REMOTE_PORT); // 密码认证 jschSession.setPassword

    2.9K00发布于 2020-09-23
  • 来自专栏别先生

    org.apache.commons.net.MalformedServerReplyException: Could not parse response code. Server Reply: S

    } 143 } 144 return success; 145 } 146 147 } 2、解决方法   使用com.jcraft.jsch.JSch ; 14 import com.jcraft.jsch.ChannelExec; 15 import com.jcraft.jsch.ChannelSftp; 16 import com.jcraft.jsch.JSch ; 17 import com.jcraft.jsch.JSchException; 18 import com.jcraft.jsch.Session; 19 import com.jcraft.jsch.SftpException 对象 104 JSch jSch = new JSch(); 105 try { 106 // 获取到jSch的session, 根据用户名、主机 ip、端口号获取一个Session对象 107 session = jSch.getSession(userName, ipAddress, DEFAULT_PORT); 108

    2.6K20发布于 2021-10-29
  • 来自专栏别先生

    java使用Jsch实现远程操作linux服务器进行文件上传、下载,删除和显示目录信息

    1、java使用Jsch实现远程操作linux服务器进行文件上传、下载,删除和显示目录信息。 > 4 <artifactId>jsch</artifactId> 5 <version>0.1.54</version> 6 </dependency> 具体演示代码如下所示: 1 ; 14 import com.jcraft.jsch.ChannelExec; 15 import com.jcraft.jsch.ChannelSftp; 16 import com.jcraft.jsch.JSch ; 17 import com.jcraft.jsch.JSchException; 18 import com.jcraft.jsch.Session; 19 import com.jcraft.jsch.SftpException 对象 104 JSch jSch = new JSch(); 105 try { 106 // 获取到jSch的session, 根据用户名、主机

    5.5K20发布于 2018-10-15
  • 来自专栏后端架构

    java使用jsch处理软链接判断是否文件夹

    因为使用jsch去读取文件的时候,有一些文件它是使用软链接制作的一个映射。因为这里面有一个问题。如果它是软链接你就无法判断他到底是文件。还是文件夹? 遇到的问题从Jsch的参数来看,首先这里他提供的一些Is link是为true的。但是判断是文件还是文件夹,全部都会frse,这个就比较苦恼了。一开始我还在想,他会不会没有提供对应的方法? 示例代码以下是一个示例代码,演示了如何使用JSch库来获取软链接指向的实际文件或目录的属性信息:import com.jcraft.jsch.ChannelSftp;import com.jcraft.jsch.JSch ;import com.jcraft.jsch.Session;import com.jcraft.jsch.SftpATTRS;public class SftpExample { public jsch = new JSch(); Session session = jsch.getSession(username, host, 22); session.setPassword

    71500编辑于 2024-01-18
  • 来自专栏java 微风

    JSch - Java Secure Channel : java 代码实现服务器远程操作

    一、前言 JSch是SSH2的纯Java实现 。 JSch允许您连接到sshd服务器并使用端口转发,X11转发,文件传输等,您可以将其功能集成到您自己的Java程序中。JSch获得BSD格式许可证。 官网上有很详细说明和例子: 官网:http://www.jcraft.com/jsch/ ------------------------------------------------------ 工具类: USER:所连接的Linux主机登录时的用户名 PASSWORD:登录密码 HOST:主机地址 DEFAULT_SSH_PROT=端口号,默认为22 package util; import ; import com.jcraft.jsch.JSch; import com.jcraft.jsch.Session; public class SSHUtil { private Channel jsch = new JSch(); this.session = jsch.getSession(username, ipAddress, 22); this.session.setPassword

    2.3K10编辑于 2022-04-13
  • 来自专栏滚雪球学Java

    密码与验证码结合:如何通过 JSCH 和 SSHD 保护你的服务器

    步骤 2:客户端配置(JSCH)在客户端,我们使用 JSCH 连接 SSH 服务器,并通过扩展 JSCH 的身份验证机制,向服务器提供密码和动态验证码。 如上段Java代码演示了如何使用JSch库来建立一个SSH连接,并在登录过程中输入动态验证码(OTP)。下面是代码的逐行解读:import 语句导入了JSch库和其他必要的类。 JSch jsch = new JSch(); 创建了一个JSch对象。Session session = jsch.getSession(user, host, 22); 创建了一个SSH会话对象。 session.connect(); 尝试建立SSH连接。 步骤 3:测试与验证通过上述代码和配置,启动 Java 客户端程序并连接到 SSHD 服务器。在连接时,用户首先输入密码,随后系统会要求用户输入动态验证码。验证通过后,服务器允许用户进行进一步操作。

    98521编辑于 2025-01-13
  • 来自专栏滚雪球学Java

    基于JSCH和SSHD的密码+验证码登录方案

    JSCH与SSHD简介JSCH 是Java Secure Channel的缩写,是一个Java库,用于在Java程序中实现SSH连接。它提供了通过SSH协议安全地执行命令和传输文件的功能。 通过JSCH,开发者可以轻松创建SSH客户端,实现远程操作。Apache SSHD 是一个Java库,提供了SSH服务器和客户端实现。它支持多种认证方式和自定义扩展,适合于构建安全的SSH连接。 sshd.start();这行代码启动了SSH服务器,使其开始监听并接受来自客户端的连接。客户端连接 使用JSCH连接SSH服务器,并进行用户交互。 这段Java代码演示了如何使用JSch库来建立一个SSH连接,并通过该连接执行命令或传输文件。 下面是代码的逐行解读:JSch jsch = new JSch();这行代码创建了一个JSch对象,JSch是一个用于Java应用程序的SSH2客户端库。

    85532编辑于 2025-01-14
领券