1. 程式人生 > >Java中使用jcraft進行SFTP的上傳下載

Java中使用jcraft進行SFTP的上傳下載

  • 如果大家熟悉Linux的話,一定對ssh,sftp,scp等命令非常熟悉。ssh是一個安全協議,用來在不同系統或者服務

    器之間進行安全連線。ssh 在連線和傳送的過程中會加密所有的資料。具體的解釋,大家可以參考百度百科的文

    檔。地址為:http://baike.baidu.com/view/16184.htm

    但是SSH一般是基於客戶端的或者Linux命令列的。比如客戶端的工具:OpenSSH,putty,SSH

    Tectia;在linux上大家可以通過ssh [email protected]連線到所要想連線的主機。但是如果在J2EE中,如何實

    現SSH呢?進而可以實現SCP,SFTP的功能呢?下面介紹的JSCH就可以實現下邊的功能。

    JSCH是一個純粹的用java實現SSH功能的java library. 官方地址為:

    http://www.jcraft.com/jsch/

    GitHub 地址為:https://github.com/vngx/vngx-jsch

    maven配置如下:

    1.<!-- 加入sftp依賴包 --> 2.<dependency> 3.<groupId>com.jcraft</groupId> 4.<artifactId>jsch</artifactId> 5.<version>
    0.1.51</version>
    6.</dependency>

    下面簡單介紹下JSCH的特點:

    1.基於DSA和RSA加密。

    2.可以實現4中認證機制。分別是:

    password
    publickey(DSA,RSA)
    keyboard-interactive
    gss-api-with-mic

    3.生成public/private key pair.

    4.執行bash script 等指令碼

    5.可以通過HTTP/SOCK5 proxy

    6.支援常見SSH1協議和SSH2協議

    我們日常用到的JSCH主要是基於是密碼認證和private key 認證。

    基於密碼認證的比較簡單。簡單程式碼如下:

    001.package com.somnus.util.base; 002. 003.import java.io.ByteArrayInputStream; 004.import java.io.File; 005.import java.io.FileInputStream; 006.import java.io.FileOutputStream; 007.import java.io.IOException; 008.import java.io.InputStream; 009.import java.util.Properties; 010.import java.util.Vector; 011. 012.import org.slf4j.Logger; 013.import org.slf4j.LoggerFactory; 014. 015.import com.jcraft.jsch.Channel; 016.import com.jcraft.jsch.ChannelSftp; 017.import com.jcraft.jsch.JSch; 018.import com.jcraft.jsch.Session; 019.import com.jcraft.jsch.SftpException; 020. 021./** 022.* sftp工具。注意:構造方法有兩個:分別是基於密碼認證、基於祕鑰認證。 023.* 025.* @author Somnus 026.*/ 027.public class SFTPUtil { 028.private static final Logger LOG = LoggerFactory.getLogger(SFTPUtil.class); 029.private ChannelSftp sftp; 030.private String userName; // FTP 登入使用者名稱 031.private String pass<a href= target="_blank"class="keylink">word</a>; // FTP 登入密碼 032.private String keyFilePath;// 私鑰檔案的路徑 033.private String host; 

    相關推薦

    Java的文件下載

    獲取 https res 文件內容 tty type() val name 表單 文件上傳原理:   早期的文件上傳機制:     在TCP/IP中。最早出現的文件上傳機制是FTP。他是將文件由客戶端發送到服務器的標準機制。   jsp中的文件上傳機制:     在jsp編

    JAVA Sftp 下載

    str create works throw 所在 inf end sco deb SftpUtils package xxx;import com.jcraft.jsch.Channel; import com.jcraft.jsch.ChannelSftp; imp

    java實現FTP下載:FTPClient類進行FTP下載大檔案(包含導致假死現象)

    介紹:  FTPClient是一個強大的FTP上傳下載工具,可以實現各種方式的ftp檔案傳輸,可以支援上傳下載各種大檔案(已在實踐中使用),而且存在官網使使用者方便的使用這個工具等等。 1.首先,程式中設定ftp請求方式為被動模式,即程式去請求ftp伺服器,要求伺服器來

    JAVA基礎篇—文件下載

    mime contain comm jsp style javax bstr trace ace /index.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" page

    xshell 使用 sftp下載檔案

    linux安裝 lrzsz 可以用 sz 下載檔案 rz 上傳檔案 還可以用sftp現在上傳下載檔案 常用命令: sftp:/www> help bye finish your SFTP session cd change your remote

    java遠端操作ftp伺服器下載

     注意裡面的檔案編碼,連線過程編碼與伺服器編碼不一致的話會導致上傳中文亂碼情況。 import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.Inpu

    Python示例程式碼之sftp下載檔案

                sftp的上傳下載是最為常見的功能之一,實現也很簡單,網上資料很多,但為了Python知識點的完整性,還是再描述了一遍。       通常我們使用paramiko庫實現sft

    JQueryAjax使用SpringMVCMultipartFile進行檔案的整合

    對於一個帶有檔案上傳的表單,後臺使用springMVC封裝的MultipartFile file接收檔案,並且需要使用非同步提交,並返回相應的提示資訊 在這種情況下,我最開始使用了好幾種方法 第一種:普通的JQUERY的AJAX,但是後臺一旦使用MultipartFile

    Xshell5下利用sftp下載傳輸檔案

    sftp是Secure File TransferProtocol的縮寫,安全。可以為傳輸檔案提供一種安全的加密方法。sftp與 ftp有著幾乎一樣的語法和功能。SFTP為 SSH的一部分,是一

    XShell 4使用sftp下載檔案命令[轉]

    bye   finish your SFTP session cd    change your remote working directory clear   clear screen exit    finish your SFTP session explore explore your local

    Java使用jcraft進行SFTP下載

    如果大家熟悉Linux的話,一定對ssh,sftp,scp等命令非常熟悉。ssh是一個安全協議,用來在不同系統或者服務 器之間進行安全連線。ssh 在連線和傳送的過程中會加密所有的資料。具體的解釋,大家可以參考百度百科的文 檔。地址為:http://baike.baidu.com/view

    Java實現檔案下載的三種解決方案

    第一點:Java程式碼實現檔案上傳   FormFile file=manform.getFile();    String newfileName = null;   String newpathname=null;   String fileAddre="/numU

    java使用Jsch實現遠端操作linux伺服器進行檔案下載,刪除和顯示目錄資訊

    1 package com.fline.aic.utils; 2 3 import java.io.BufferedReader; 4 import java.io.File; 5 import java.io.FileInputStream; 6 import jav

    JAVA-OSS】如何在spring-boot專案使用oss下載檔案

    準備工作: 1.申請oss 你會得到 endpoint,accessKeyId,bucketName,accessKeySecret 2.引入oss maven dependency : com.aliyun.oss:aliyun-sdk-oss:jar:2.5.0 3.

    Java專案對MongoDB資料庫進行檔案

    import com.mongodb.MongoClient; import com.mongodb.client.MongoDatabase; import com.mongodb.client.gridfs.GridFSBucket; import com.mongodb.client.gridfs.G

    呼叫JAVA API對HDFS檔案進行檔案的讀寫、下載、刪除等操作程式碼詳解

    Hadoop檔案系統  基本的檔案系統命令操作, 通過hadoop fs -help可以獲取所有的命令的詳細幫助檔案。 Java抽象類org.apache.hadoop.fs.FileSystem定義了hadoop的一個檔案系統介面。該類是一個抽象類,通過以下兩種靜態工廠方

    Java 使用 SFTP 實現檔案下載(二)

    package com.lijy.util; import com.jcraft.jsch.Channel; import com.jcraft.jsch.ChannelSftp; import com.jcraft.jsch.JSch; import com.jcraf

    java利用jcraft實現和遠端伺服器互動,實現下載檔案

    git地址:https://github.com/fusugongzi/upLoadAndDownloadFile 第一步:引入maven支援,新增maven依賴 <!-- https://mvnrepository.com/artifact/com.jcraft

    Mac如何使用SSH遠端連線linux及使用SCP、SFTP和Filezilla進行檔案下載

        最近踏入了Mac的坑,各種不適應,linux伺服器上有個java web專案幾個class需要釋出,想找個類似windows下f-secure ssh套件,即可以進行命令操作,又可以進行檔案操作。很遺憾,沒找到合適的,哪位大俠有合適的求推薦。但是活得幹,程式要釋出呀,