java之基於jsch連線sftp

2021-09-02 11:09:09 字數 1628 閱讀 5072

當系統與系統之間的通訊需要大檔案共享資料,並且是遠端的關係,很多時候都會用到安全的檔案傳輸協議sftp。

到目前為止,碰到了兩種關於sftp的鏈結方式:

兩種的主要區別在於後者需要有sftp伺服器的密匙檔案、以專網ip(sftp服務端只允許報備過的ip訪問)開放的形式獲取檔案,這樣的安全性應該更高些。

以下是基於jsch的兩種連線方式:

/** 使用者名稱密碼的方式連線sftp

* @param host

* @param port

* @param username

* @param password

* @return

*/public channelsftp connect(string host, int port, string username, string password) throws jschexception

/** * 支援金鑰的方式登陸

* @param ip

* @param username

* @param password 非必須

* @param port

* @param privatekey 必須,由遠端sftp伺服器生成提供並存放在客戶端伺服器上

* @param passphrase 非必須

*/public channelsftp connectwithkey(string ip, string username, string password, int port, string privatekey, string passphrase) throws exception else

} session session = null;

if(port <=0)else

if (session == null)

if(stringutils.isnotblank(password))//密碼不為空則設定密碼

session.setpassword(password);

properties sshconfig = new properties();

sshconfig.put("stricthostkeychecking", "no");//設定第一次登陸的時候提示,可選值:(ask | yes | no)

session.setconfig(sshconfig);

session.connect();//設定登陸超時時間

channel channel = (channel)session.openchannel("sftp");//建立sftp通訊通道

channel.connect();

channelsftp sftp = (channelsftp)channel;

return sftp;

}/**

* 金鑰方式呼叫示例

* 其中"/usr/local/.ssh/***_remote_rsa"為sftp伺服器生成並提供給呼叫客戶端伺服器,並存放在客戶端伺服器上

* @return

* @throws sftpexception

*/public void dovisit()catch(exception e)

}

Java中的連字元

算術運算子中的 在鏈結字串的時候用來充當連字元使用。今天用乙個例子來介紹下哪種情況下加號是連字元,哪種情況下是算術運算子。system.out.println 3 4 3 4 system.out.println 3 4 3 4 第一行 從控制台輸出的結果是3 4 34 第二行 從控制台輸出的結果是...

Elasticsearch DSL語句之連線查詢

傳統資料庫支援的full join 全連線 查詢方式。這種方式在elasticsearch中使用時非常昂貴的。因此,elasticsearch提供兩種操作可以支援水平擴充套件 在es中支援兩種連線方式 巢狀查詢和has child has parent父子查詢 巢狀查詢 文件中包含巢狀的字段 這些欄...

MySQL 之 表的內連和外連

資料庫中表的連線分為內連 1.內連線 內連線實際上就是利用where子句對兩種表形成的笛卡兒積進行篩選。語法 select 字段 from 表1 inner join 表2 on 連線條件 and 其他條件 eg 顯示smith的名字和部門名稱 用標準的內連線寫法 select ename,dnam...