SFTP登录上传下载

jsch-0.1.55,包含jar和source SFTP操作类,压缩包内包含jar包和source源码,工具类编写可参考: https://blog.csdn.net/ruixue0117/article/details/86517566 立即下载

欢迎大家互相交流学习。。。

jsch-0.1.51.jar下载地址:http://download.youkuaiyun.com/detail/daohaode123/8412375


package com.zjl;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Properties;
import java.util.Vector;

import com.jcraft.jsch.Channel;
import com.jcraft.jsch.ChannelSftp;
import com.jcraft.jsch.ChannelSftp.LsEntry;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.JSchException;
import com.jcraft.jsch.Session;
import com.jcraft.jsch.SftpException;

/**
 * @author zjl
 *
 */
public class SFTPUtil {
	
	/**
	 * @param host 主机IP
	 * @param port 主机端口号
	 * @param username 登录名
	 * @param password 登录密码
	 * 
	 * @return sftp
	 */
	public ChannelSftp connect(String host, int port, String username, String password){
		ChannelSftp sftp = null;
		try {
			JSch jsch = new JSch();
			Session session = jsch.getSession(username, host, port);
			session.setPassword(password);
			Properties properties = new Properties();
			properties.put("StrictHostKeyChecking", "no");
			session.setConfig(properties);
			session.connect();
			Channel channel = session.openChannel("sftp");
			channel.connect();
			sftp = (ChannelSftp) channel;
		} catch (JSchException e) {
			e.printStackTrace();
		}
		return sftp;
	}
	
	/**
	 * 列出目录下的文件
	 * @param directory 目录
	 * @param sftp 
	 * 
	 * @return fileNameList 文件名列表
	 * @throws Exception 
	 */
	public List<String> listFiles(String directory, ChannelSftp sftp) throws Exception{
		Vector fileList;
		List<String> fileNameList = new ArrayList<String>();
		
		fileList = sftp.ls(directory);
		Iterator it = fileList.iterator();
		
		while(it.hasNext()){
			String fileName = ((LsEntry)it.next()).getFilename();
			if(".".equals(fileName) || "..".equals(fileName)){
				continue;
			}
			fileNameList.add(fileName);
		}
		return fileNameList;
	}
	/**
	 * 删除文件
	 * @param directory 目录
	 * @param deleteFile  删除的文件
	 *
	 */
	public void delete(String dieectory, String deleteFile, ChannelSftp sftp){
		try {
			sftp.cd(dieectory);
			sftp.rm(deleteFile);
		} catch (SftpException e) {
			e.printStackTrace();
		}
	}
	/**
	 * 下载目录下的全部文件
	 * @param directory 目录
	 * @param saveDirectory  存在本地的路径
	 * @param sftp
	 * @throws Exception 
	 *
	 */
	public void downloadDirectory(String directory, String saveDirectory, ChannelSftp sftp) throws Exception{
		String downloadFile = "";
		List<String> downloadFileList;
		downloadFileList = listFiles(directory,sftp);
		Iterator<String> it = downloadFileList.iterator();
		while(it.hasNext()){
			downloadFile = it.next().toString();
			if(downloadFile.toString().indexOf(".") < 0){
				continue;
			}
			download(directory,downloadFile,saveDirectory,sftp);
		}
	}
	/**
	 * 下载单个文件
	 * @param directory 下载目录
	 * @param downloadFile 下载的文件
	 * @param saveDirectory 保存的路径
	 * @param sftp
	 * @throws Exception 
	 */
	public void download(String directory, String downloadFile, String saveDirectory, ChannelSftp sftp) throws Exception {
		String saveFile = saveDirectory + "//" + downloadFile;
		try {
			sftp.cd(directory);
			File file = new File(saveFile);
			sftp.get(downloadFile, new FileOutputStream(file));
		} catch (SftpException e) {
			e.printStackTrace();
		}
	}
	/**
	 * 上传目录下所有文件
	 * @param directory 上传的路径
	 * @param local 本地目录
	 * 
	 */
	public void uploadDirectory(String directory, String local, ChannelSftp sftp) throws Exception{
		String uploadFile = "";
		List<String> uploadFileList;
		uploadFileList = listFiles(local,sftp);
		Iterator<String> it = uploadFileList.iterator();
		while(it.hasNext()){
			uploadFile = it.next().toString();
			upload(directory,uploadFile,sftp);
		}
	}
	/**
	 * 上传单个文件
	 * 
	 * @param directory 上传的路径
	 * @param uploadFile 上传的文件
	 * @param sftp
	 * @throws Exception
	 */
	public void upload(String directory, String uploadFile, ChannelSftp sftp) throws Exception {
		try {
			sftp.cd(directory);
			File file = new File(uploadFile);
			sftp.put(new FileInputStream(file),file.getName());
		} catch (SftpException e) {
			e.printStackTrace();
		}
	}
}


jsch0.1.55.jar_jsch0.1.53.jar jsch-0.1.53.jar 、jsch-0.1.55.jar两个版本的jar包, 可避免Algorithm negotiation fail异常,下载后解压即可获取 立即下载

相关推荐

jsch-0.1.55.jar 包

jsch.jar java通过代码登录远程linux服务器并执行linux命令需要的jar包

jsch-0.1.55.jar 资源文件介绍

jsch-0.1.55.jar 资源文件介绍 【下载地址】jsch-0.1.55.jar资源文件介绍 `jsch-0.1.55.jar` 是一个专为Java开发者设计的工具包,能够轻松实现与远程Linux服务器的安全连接,并执行各种Linux命令。它完整支持SSH2协议,确保数据传输的安全性。只需将该jar包添加到项目的...

gitblog_06722的博客 652

jsch的jar包,包含0.1.51,0.1.52,0.1.53,0.1.54等这几个版本

jsch的jar包,其中包含0.1.51,0.1.52,0.1.53,0.1.54等这几个版本

java ssh 连接之 jsch-0.1.55.jar 试用

JSch 是一个纯 java 的 ssh2 实现。主要用来连接 ssh 和 sftp。 官网在此: http://www.jcraft.com/jsch/ 1, MAVEN 引入依赖 <!-- https://mvnrepository.com/artifact/com.jcraft/jsch --> <dependency> <groupId>com.jcraft</groupId> <artifactId>jsch</ar

dosrain 3611

jsch-0.1.55.jar

jmeter ssh command依赖jar包,需要放置于apache-jmeter-5.1.1\apache-jmeter-5.1.1\lib目录下。

jsch-0.1.55.jar java语言linux系统文件安全传输工具包 - 亲测可用,请放心下载

java语言linux系统文件安全传输工具包,下载后从外层包装中解压即可

java sftp私钥登录_cmd窗口使用sftp命令非密钥和密钥登录SFTP服务器的两种方式

cmd窗口使用sftp命令非密钥和密钥登录SFTP服务器的两种方式二、非密钥登录0、Bitvise SSH Server服务器1、Win + R 进入cmd窗口。2、登录命令:sftp -P 28 kevin@127.0.0.1说明:-P 端口参数 28是端口,默认端口是22 kevin是登录的用户名,127.0.0.1是SFTP服务器的地址(搭在本地环境)上传文件命令:put d:/file...

weixin_42126668的博客 2177

jsch-0.1.55.jar中文-英文对照文档.zip

注:下文中的 *** 代表文件名中的组件名称。 # 包含: 中文-英文对照文档:【***-javadoc-API文档-中文(简体)-英语-对照版.zip】 jar包下载地址:【***.jar下载地址(官方地址+国内镜像地址).txt】 Maven依赖:【***.jar Maven依赖信息(可用于项目pom.xml).txt】 Gradle依赖:【***.jar Gradle依赖信息(可用于项目build.gradle).txt】 源代码下载地址:【***-sources.jar下载地址(官方地址+国内镜像地址).txt】 # 本文件关键字: 中文-英文对照文档,中英对照文档,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压 【***.jar中文文档.zip】,再解压其中的 【***-javadoc-API文档-中文(简体)版.zip】,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·本文档为双语同时展示,一行原文、一行译文,可逐行对照,避免了原文/译文来回切换的麻烦; ·有原文可参照,不再担心翻译偏差误导; ·边学技术、边学英语。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;

sftp登录和ftp登录

1. ftp命令行登录过程 ① ftp xxx.xxx.xxx.xxx 登录(默认端口21),若端口改为22 ,ftp xxx.xxx.xxx.xxx 22 进行登录 ② 登录成功后,会要求输入 用户名 和 密码 ③ 然后,可进入目录, ls 查看目录下内容 ④ cd 切换目录,get 获取文件, put 上传文件 ...

u014644574的博客 9125

jsch-0.1.55.jar中文文档.zip

1、压缩文件中包含: 中文文档、jar包下载地址、Maven依赖、Gradle依赖、源代码下载地址。 2、使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 3、特殊说明: (1)本文档为人性化翻译,精心制作,请放心使用; (2)只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; (3)不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 4、温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件。 5、本文件关键字: jar中文文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册。

RISC-V嵌入式开发实战:手把手教你读懂并修改CH32V103的链接脚本(.ld)

本文深入解析RISC-V嵌入式开发中CH32V103链接脚本(.ld)的编写与优化技巧。从内存布局、段分配到实战调试,详细讲解如何解决程序跑飞、变量异常等典型问题,特别针对RISC-V架构的gp寄存器优化、中断向量表处理等特性提供专业指导,帮助开发者充分利用64KB Flash和20KB RAM资源。

weixin_33704234的博客 175

SFTP登录及命令行用法

sftp命令行登录过程 ① sftp xxx.xxx.xxx.xxx 登录(默认root用户),若指定用户 sftp blue@xxx.xxx.xxx.xxx 进行登录(blue为用户名) ② 登录成功后,会提示输入 密码 ③ 然后,可进入目录, ls 查看目录下内容 ④ cd 切换目录,get 获取文件, put 上传文件 ⑤ quit / bye / exit 退出sftp 如果登陆的时候端口不是默认的22,添加-oPort参数指定端口 (SFTP指定端口号登陆) sftp -o.

craftsman2020的博客 3万+

Cursor3.0新界面使用说明

本文摘要:Cursor 3.x版本更新后,提供了两套主界面:Editor(类似VSCode的代码编辑器)和AgentsWindow(以AI智能体为中心的新界面)。Editor适合日常编码,AgentsWindow则支持并行运行多个AI任务、云端协作和多仓库管理。通过Ctrl+E可快速切换布局。文章详细介绍了AI聊天面板的操作技巧、四种工作模式(Agent/Plan/Ask/Debug)的区别,以及AgentsWindow的多任务管理功能。同时提供了Windows快捷键速查、中文化设置方法,并对比了新旧版本的

2501_90421497的博客 727

java连接并登录登出SFTP服务器(2)---免密登录sftp

java连接并免密登录SFTP服务器 pubKeyPath 为本地免密访问远程服务器配置的私钥的路径 @Service public class FtpUtil { public static ThreadLocal<ChannelSftp> channelSftpMap = new ThreadLocal<ChannelSftp>(); /** ...

f_f0601的博客 2448

用于多种无人机协作的群体智能算法:综合综述

随着无人机技术的快速高水平发展,将多架无人机作为自主控制的编队应用于复杂情况是一个新兴领域的代表之一。在实现自主控制的挑战中,碰撞避免、任务分配、路径规划和编队重构是关键功能。本文对各种经典的无人机群智能算法进行了系统的总结和分析。

erjia_的博客 1万+

CanOpen PDO映射实战:从原理到配置的完整指南

本文详细解析了CanOpen PDO映射的原理与配置流程,从基础通信机制到实战配置步骤,涵盖禁用PDO、清空映射、逐项映射和使能PDO等关键环节。特别针对西门子G120变频器、台达伺服和倍福CX控制器等不同厂商设备,提供了具体的配置技巧和常见问题排查指南,帮助工程师快速掌握多厂商设备间的PDO通信配置。

weixin_30718391的博客 517

Linux设置用户登录sftp

创建用户时,可以使用useradd命令的-d选项指定用户的主目录。例如,要创建用户sftpuser并将其主目录设置为。

qq_51987787的博客 1628

ADS使用Smith圆图进行阻抗匹配

在处理RF系统的实际应用问题时,总会遇到一些非常困难的工作,对各部分级联电路的不同阻抗进行匹配就是其中之一。一般情况下,需要进行匹配的电路包括天线与低噪声放大器(LNA)之间的匹配、功率放大器输出(RFOUT)与天线之间的匹配、LNA/VCO输出与混频器输入之间的匹配。匹配的目的是为了保证信号或能量有效地从“信号源”传送到“负载”。 阻抗匹配(impedance matching) 信号源内阻与所接传输线的特性阻抗大小相等且相位相同,或传输线的特性阻抗与所接负载阻抗的大小相等且相位相同,分别称为传输线的输

红茶绿茶和奶茶的博客 3万+

cmd窗口使用sftp命令非密钥和密钥登录SFTP服务器的两种方式

cmd窗口使用sftp命令非密钥和密钥登录SFTP服务器的两种方式 一、在Windows环境下搭建SFTP服务器可参见http://www.cnblogs.com/Kevin00/p/6341295.html 二、非密钥登录 0、Bitvise SSH Server服务器 1、Win + R 进入cmd窗口。 2、登录命令:sftp -P ...

Liu0165的博客 2171

Cobalt Strike4.0安装包(内附中文版)

1.什么是 Cobalt Strike Cobalt Strike 是一个为对手模拟和红队行动而设计的平台,主要用于执行有目标的攻击和模拟高级威胁 者的后渗透行动。 Cobalt Strike已经不再使用MSF而是作为单独的平台使用,它分为客户端与服务端,服务端是一个,客户端可以有多个,可被团队进行分布式协团操作。集成了端口转发、扫描多模式端口Listener、Windows exe程序生成、W...

梦之序章的博客 2万+

Proteus一体化安装STC15库添加

Proteus一体化安装与STC15库添加指南 本文详细介绍了Proteus 8.9 SP2专业版的一体化安装流程和STC15系列单片机库文件的添加方法。安装过程简单快捷,无需破解,稳定性好。通过将两个库文件(Lib和LIB)复制到Proteus安装目录的DATA/LIBRARY文件夹中,即可实现STC15W4K32S4芯片的仿真功能。文中还提供了新建工程和器件放置的步骤说明,特别指出STC15W4K32S4芯片可兼容仿真其他STC15系列芯片,并附带下载链接获取资源。该教程适用于电子设计初学者和开发者。

#法外狂徒张三的博客 4万+

java代码sftp免密登录_详解Java使用Jsch与sftp服务器实现ssh免密登录

/ SFTP服务器地址。// SFTP用户名。// SFTP服务器端口号,默认为22。// 打开SFTP通道。

dushe2046的专栏 1544

B.3【智能标注】:基于Labelstudio的UIE半监督深度学习的智能标注方案(云端版),提效。

Label Studio 所提供的 Machine Learning Backend 提供了一个比较灵活的辅助人工标注的框架,我们通过它确实可以加快 nlp 数据的标注Label Studio 的 enterprise 版本提供了 Active Learning 的流程,不过从其描述看这个流程并不完美,尤其是 fit 部分,由于 Label Studio 低估了「Train」所花费的时间,所以每次标注都自动训练的流程可能并不会那么顺滑(会在链接时候等待一段时间)

丨汀、的博客 1840

Linux 下ssh sftp配置之密钥方式登录详解

由于vsftp采用明文传输,用户名密码可通过抓包得到,为了安全性,需使用sftp,锁定目录且不允许sftp用户登到服务器。由于sftp使用的是ssh协议,需保证用户只能使用sftp,不能ssh到机器进行操作,且使用密钥登陆、不是22端口。 先看下流程图: 1. 在远程目标创建sftp服务用户组,创建sftp服务根目录 1 groupadd s...

山东梅长苏 2万+

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

SFTP免密码登录操作方法

https://blog.csdn.net/yangshangwei/article/details/53024203 SFTP免密码登录操作方法 1) 登陆服务端主机,在当前用户根目录执行(以RSA算法为例) 如下命令: ssh-keygen –t rsa 屏幕显示内容均可直接以回车使用默认项,此时在$home/.ssh目录下生成I d_rsa私钥(private key)及id_rs...

qq_27361945的博客 1万+

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

linux 密钥方式登录sftp,sftp命令非密钥和密钥登录SFTP服务器的两种方式

一、在Windows环境下搭建SFTP服务器可参见http://www.cnblogs.com/Kevin00/p/6341295.html二、非密钥登录1、Bitvise SSH Server服务器2、Win + R 进入cmd窗口。3、登录命令:sftp -P 28 kevin@127.0.0.1说明:-P 端口参数 28是端口,默认端口是22 kevin是登录的用户名,127.0.0.1是S...

weixin_31006689的博客 5550

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

上一篇: 发送带附件的邮件 java
daohaode123
博客等级 码龄16年 7粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值