日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

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

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

瀏覽:112日期: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
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩欧美看国产| 久久www成人_看片免费不卡| 久久人人88| 久久免费视频66| 日韩精品一区二区三区中文| 亚洲高清二区| 日韩国产综合| 成人午夜亚洲| 精品欧美视频| 麻豆成人av在线| 911亚洲精品| 亚洲另类视频| 亚洲在线观看| 伊人久久婷婷| 高清av一区二区三区| 亚洲专区一区| 欧美日韩国产在线一区| 日韩欧美看国产| 欧美福利一区| 亚洲高清久久| 136国产福利精品导航网址| 久久人人精品| 久久中文字幕av| 久久亚洲国产| 日韩午夜免费| 丝袜美腿高跟呻吟高潮一区| 久久亚洲风情| 中文一区一区三区免费在线观 | 西西人体一区二区| 欧美1级日本1级| 亚洲成人三区| 伊人精品在线| 亚洲一区中文| 蜜桃久久精品一区二区| 在线精品一区二区| 日日夜夜免费精品视频| 91国内精品| 日韩免费精品| 日韩精品一二区| 亚洲一区不卡| 亚洲天堂日韩在线| 日韩精品91亚洲二区在线观看| 日本不卡视频一二三区| 久久精品97| 久久精品二区亚洲w码| 国产粉嫩在线观看| 91精品成人| 日本亚洲欧美天堂免费| 国产毛片久久久| 精品久久久中文字幕| 成人va天堂| 男女精品网站| 综合在线一区| 国产精品v日韩精品v欧美精品网站 | 99re国产精品| 蜜桃视频一区二区三区| 日韩黄色在线观看| 麻豆国产精品| 久久精品1区| 国产视频久久| 国产亚洲一区| 日本精品不卡| 欧美a级片一区| 亚洲精品观看| 精品视频91| 91久久久久| 国产精品一区二区中文字幕| 国产乱人伦精品一区| 国产精品黑丝在线播放| 精品欧美久久| 午夜天堂精品久久久久| 国产+成+人+亚洲欧洲在线| 欧美日韩视频| 国产精品男女| 狠狠久久婷婷| 国产精品久一| 国产一区日韩一区| 亚洲精品九九| 日韩国产综合| 在线免费观看亚洲| 国产专区精品| 亚洲欧美日韩视频二区| 国产乱论精品| 亚洲午夜黄色| 久久国产麻豆精品| 欧美~级网站不卡| 国产欧美激情| 午夜久久影院| 久久99偷拍| 午夜在线视频观看日韩17c| 欧美黄色一区二区| 免费日韩视频| 欧美aaaaaa午夜精品| 欧洲精品一区二区三区| 少妇精品在线| 欧美日韩在线观看视频小说| 国产伦精品一区二区三区在线播放 | 国产精品传媒麻豆hd| 亚洲精品国产嫩草在线观看| 亚洲伊人精品酒店| 国产suv精品一区二区四区视频 | 国产99在线| 亚洲伊人影院| 国产美女高潮在线观看| 日本精品国产| japanese国产精品| 国产成人黄色| 欧美另类中文字幕| 一区免费在线| 9999国产精品| 国产一区 二区| 在线综合视频| 日韩精品看片| 免费亚洲一区| 亚洲色图综合| 美女亚洲一区| 少妇精品导航| 国产成人精品一区二区免费看京| 日韩福利在线观看| 亚洲精品一区二区妖精| 国产精品99一区二区三| 日韩高清二区| 丝袜亚洲精品中文字幕一区| 久久在线免费| 岛国av在线播放| 久久wwww| 日本vs亚洲vs韩国一区三区二区| 蜜臀av免费一区二区三区| 91嫩草亚洲精品| 日韩在线成人| 99re国产精品| 在线日韩av| 欧洲精品一区二区三区| 欧美韩日一区| 国产一区二区精品福利地址| 久久不见久久见国语| 国产欧美一区二区精品久久久| 日韩中文字幕无砖| 亚洲精品乱码日韩| 亚洲一级在线| 久久成人国产| 99re国产精品| 国产色综合网| 黑丝一区二区| 欧美日韩视频免费观看| 91亚洲国产高清| 高清一区二区三区av| 美日韩一区二区三区| 国产精品草草| 国产福利一区二区三区在线播放| 欧美伊人久久| 久久精品凹凸全集| 国产精品中文字幕制服诱惑| 欧美一区激情| 国产欧美日韩在线一区二区| 一区二区三区四区日韩| 首页国产精品| 福利欧美精品在线| 久久中文欧美| 国产极品模特精品一二| 欧美天堂在线| 国产精品丝袜在线播放| 欧美成a人片免费观看久久五月天| 国产精品亚洲成在人线| 欧美极品中文字幕| 久久久91麻豆精品国产一区| 久久av超碰| 国产精品原创| 黄色亚洲精品| 麻豆视频一区| 亚洲国产一区二区三区在线播放| 日本欧美久久久久免费播放网| 神马久久午夜| 亚洲精品一区二区在线播放∴| 国产剧情一区二区在线观看| 久久久久久久久99精品大| 午夜天堂精品久久久久| 999久久久91| 日韩在线麻豆| 男人的天堂久久精品| 精品资源在线| 亚洲一区二区三区高清不卡| 国产精品男女| 午夜精品婷婷| 免费在线亚洲欧美| 亚洲中午字幕| 成人午夜网址| 中文字幕亚洲在线观看| 亚洲精品福利电影| 日韩视频一区二区三区在线播放免费观看 | 成人台湾亚洲精品一区二区| 99在线|亚洲一区二区| 国产精品.xx视频.xxtv| 在线国产一区| 精品国产精品久久一区免费式| 蜜臀精品久久久久久蜜臀| 夜鲁夜鲁夜鲁视频在线播放| 日韩精品国产精品| 亚洲午夜久久久久久尤物| 蜜桃精品视频|