电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

如何在java中使用SFTP協議安全的傳輸文件

瀏覽:46日期:2022-08-22 18:24:07

如何在java中使用SFTP協議安全的傳輸文件

本文介紹在Java中如何使用基于SSH的文件傳輸協議(SFTP)將文件從本地上傳到遠程服務器,或者將文件在兩個服務器之間安全的傳輸。我們先來了解一下這幾個協議

SSH 是較可靠,專為遠程登錄會話和其他網絡服務提供安全性的協議。比如:我們購買的云服務器登陸的時候使用的協議都是ssh。 ftp協議通常是用來在兩個服務器之間傳輸文件的,但是它本質上是不安全的。 那么SFTP是什么?SFTP可以理解為SSH + FTP,也就是安全的網絡文件傳輸協議。

一般來說,SFTP和FTP服務都是使用相應的客戶端軟件來提供服務。如果你希望在java代碼中使用SFTP協議進行安全的文件傳輸,那么這篇文章非常適合你。

1. 導入JSch 依賴包

在maven項目pom.xml中導入如下的坐標,我們使用JSch,JSch將SFTP協議封裝為對應的API供我們調用。

<dependency> <groupId>com.jcraft</groupId> <artifactId>jsch</artifactId> <version>0.1.55</version></dependency>

2. 文件傳輸 ? JSch例子

2.1 get與put方法

在JSch,我們可以使用put和get在服務器之間進行文件傳輸。put方法用來將文件從本地系統傳輸到遠程服務器。

channelSftp.put(localFile, remoteFile);

get方法將文件從遠程服務器下載到本地系統。

channelSftp.get(remoteFile, localFile);

2.2 使用用戶名和密碼進行認證

JSch jsch = new JSch();jsch.setKnownHosts('/home/zimug/.ssh/known_hosts');jschSession = jsch.getSession(USERNAME, REMOTE_HOST, REMOTE_PORT);jschSession.setPassword(PASSWORD); '/home/zimug/.ssh/known_hosts'為SSH的known_hosts文件,也就是可信遠程主機的公鑰保存文件。 USERNAME 為用戶名 REMOTE_HOST遠程主機的Ip REMOTE_PORT遠程主機端口 PASSWORD遠程主機登錄密碼

2.3.使用公鑰和私鑰進行認證

如果讀者不能理解公鑰和私鑰的用法及含義,需要先自行補充一下SSH知識。

本地私鑰?/home/登錄用戶名/.ssh/id_rsa 遠程公鑰默認保存位置?~/.ssh/authorized_keys

JSch jsch = new JSch();jsch.setKnownHosts('/home/zimug/.ssh/known_hosts');jschSession = jsch.getSession(USERNAME, REMOTE_HOST, REMOTE_PORT);jsch.addIdentity('/home/zimug/.ssh/id_rsa');

2.4 完整JSch文件傳輸示例

將文件從本地系統傳輸到遠程服務器1.2.3.4,并使用SSH密碼登陸方式進行身份驗證。

import com.jcraft.jsch.*;public class SFTPFileTransfer { private static final String REMOTE_HOST = '1.2.3.4'; //遠程主機ip private static final String USERNAME = ''; //登錄用戶名 private static final String PASSWORD = ''; //登陸密碼 private static final int REMOTE_PORT = 22; //ssh協議默認端口 private static final int SESSION_TIMEOUT = 10000; //session超時時間 private static final int CHANNEL_TIMEOUT = 5000; //管道流超時時間 public static void main(String[] args) { String localFile = '/home/zimug/local/random.txt'; //本地文件路徑 String remoteFile = '/home/zimug/remote/targetfile.txt'; //上傳到遠程的文件路徑,要保證登錄用戶有寫權限 Session jschSession = null; try { JSch jsch = new JSch(); jsch.setKnownHosts('/home/zimug/.ssh/known_hosts'); jschSession = jsch.getSession(USERNAME, REMOTE_HOST, REMOTE_PORT); // 通過ssh私鑰的方式登錄認證 // jsch.addIdentity('/home/zimug/.ssh/id_rsa'); // 通過密碼的方式登錄認證 jschSession.setPassword(PASSWORD); jschSession.connect(SESSION_TIMEOUT); Channel sftp = jschSession.openChannel('sftp'); //建立sftp文件傳輸管道 sftp.connect(CHANNEL_TIMEOUT); ChannelSftp channelSftp = (ChannelSftp) sftp; // 傳輸本地文件到遠程主機 channelSftp.put(localFile, remoteFile); channelSftp.exit(); } catch (JSchException | SftpException e) { e.printStackTrace(); } finally { if (jschSession != null) {jschSession.disconnect(); } } System.out.println('文件傳輸完成!'); }}

3. JSch異常處理

在文件上傳的過程中,我們可能會遇到下面的一些異常

3.1UnknownHostKey異常

需要將遠程服務器IP地址添加到known_hosts文件中。

$ ssh-keyscan -t rsa 1.2.3.4 >> ~/.ssh/known_hosts

3.2對于私鑰無效異常

有可能是遠程服務器重新生成了私鑰,需要把私鑰分發復制到本地服務器。

ssh-copy-id -i ~/.ssh/id_rsa.pub <被分發的服務器ip>

3.3對于Auth fail異常

請確保提供的登錄密碼時正確的

com.jcraft.jsch.JSchException: Auth failat com.jcraft.jsch.Session.connect(Session.java:519)at com.zimug.io.howto.SFTPFileTransfer.main(SFTPFileTransfer.java:34)

作者:字母哥博客

以上就是如何在java中使用SFTP協議安全的傳輸文件的詳細內容,更多關于Java 傳輸文件的資料請關注好吧啦網其它相關文章!

標簽: Java
相關文章:
主站蜘蛛池模板: 可程式恒温恒湿试验箱|恒温恒湿箱|恒温恒湿试验箱|恒温恒湿老化试验箱|高低温试验箱价格报价-广东德瑞检测设备有限公司 | 福州仿石漆加盟_福建仿石漆厂家-外墙仿石漆加盟推荐铁壁金钢(福建)新材料科技有限公司有保障 | 2-羟基泽兰内酯-乙酰蒲公英萜醇-甘草查尔酮A-上海纯优生物科技有限公司 | 消泡剂-水处理消泡剂-涂料消泡剂-切削液消泡剂价格-东莞德丰消泡剂厂家 | 仓储货架_南京货架_钢制托盘_仓储笼_隔离网_环球零件盒_诺力液压车_货架-南京一品仓储设备制造公司 | 400电话_400电话申请_866元/年_【400电话官方业务办理】-俏号网 3dmax渲染-效果图渲染-影视动画渲染-北京快渲科技有限公司 | 阻垢剂-反渗透缓蚀阻垢剂厂家-山东鲁东环保科技有限公司 | 北京易通慧公司从事北京网站优化,北京网络推广、网站建设一站式服务商-北京网站优化公司 | 空气能暖气片,暖气片厂家,山东暖气片,临沂暖气片-临沂永超暖通设备有限公司 | 压力控制器,差压控制器,温度控制器,防爆压力控制器,防爆温度控制器,防爆差压控制器-常州天利智能控制股份有限公司 | 土壤有机碳消解器-石油|表层油类分析采水器-青岛溯源环保设备有限公司 | 真丝围巾|真丝丝巾|羊绒围巾|围巾品牌|浙江越缇围巾厂家定制 | 欧必特空气能-商用空气能热水工程,空气能热水器,超低温空气源热泵生产厂家-湖南欧必特空气能公司 | 英国公司注册-新加坡公司注册-香港公司开户-离岸公司账户-杭州商标注册-杭州优创企业 | 定制防伪标签_防伪标签印刷_防伪标签厂家-510品保防伪网 | 长春网站建设,五合一网站设计制作,免费优化推广-长春网站建设 | 衡阳耐适防护科技有限公司——威仕盾焊接防护用品官网/焊工手套/焊接防护服/皮革防护手套 | 防渗土工膜|污水处理防渗膜|垃圾填埋场防渗膜-泰安佳路通工程材料有限公司 | 品牌设计_VI设计_电影海报设计_包装设计_LOGO设计-Bacross新越品牌顾问 | 全自动真空上料机_粉末真空上料机_气动真空上料机-南京奥威环保科技设备有限公司 | 河南橡胶接头厂家,河南波纹补偿器厂家,河南可曲挠橡胶软连接,河南套筒补偿器厂家-河南正大阀门 | 翰墨AI智能写作助手官网_人工智能问答在线AI写作免费一键生成 | 对辊破碎机-液压双辊式,强力双齿辊,四辊破碎机价格_巩义市金联机械设备生产厂家 | 国际金融网_每日财经新资讯网 | 厦门ISO认证|厦门ISO9001认证|厦门ISO14001认证|厦门ISO45001认证-艾索咨询专注ISO认证行业 | 卓能JOINTLEAN端子连接器厂家-专业提供PCB接线端子|轨道式端子|重载连接器|欧式连接器等电气连接产品和服务 | 电缆隧道在线监测-智慧配电站房-升压站在线监测-江苏久创电气科技有限公司 | 环氧乙烷灭菌器_压力蒸汽灭菌器_低温等离子过氧化氢灭菌器 _低温蒸汽甲醛灭菌器_清洗工作站_医用干燥柜_灭菌耗材-环氧乙烷灭菌器_脉动真空压力蒸汽灭菌器_低温等离子灭菌设备_河南省三强医疗器械有限责任公司 | 仿真茅草_人造茅草瓦价格_仿真茅草厂家_仿真茅草供应-深圳市科佰工贸有限公司 | 医疗仪器模块 健康一体机 多参数监护仪 智慧医疗仪器方案定制 血氧监护 心电监护 -朗锐慧康 | 超声波流量计_流量标准装置生产厂家 _河南盛天精密测控 | 期货软件-专业期货分析软件下载-云智赢 | 北京易通慧公司从事北京网站优化,北京网络推广、网站建设一站式服务商-北京网站优化公司 | 质检报告_CE认证_FCC认证_SRRC认证_PSE认证_第三方检测机构-深圳市环测威检测技术有限公司 | 洁净棚-洁净工作棚-无菌室-净化工程公司_北京卫护科技有限公司 | 南京泽朗生物科技有限公司-液体饮料代加工_果汁饮料代加工_固体饮料代加工 | 智能案卷柜_卷宗柜_钥匙柜_文件流转柜_装备柜_浙江福源智能科技有限公司 | ◆大型吹塑加工|吹塑加工|吹塑代加工|吹塑加工厂|吹塑设备|滚塑加工|滚塑代加工-莱力奇塑业有限公司 | PE一体化污水处理设备_地埋式生活污水净化槽定制厂家-岩康塑业 | 课件导航网_ppt课件_课件模板_课件下载_最新课件资源分享发布平台 | 螺钉式热电偶_便携式温度传感器_压簧式热电偶|无锡联泰仪表有限公司|首页 |