當系統與系統之間的通訊需要大檔案共享資料,並且是遠端的關係,很多時候都會用到安全的檔案傳輸協議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...