服務(wù)器實現(xiàn)Java遠(yuǎn)程訪問Linux服務(wù)器方式(JSch)
服務(wù)器實現(xiàn)Java遠(yuǎn)程訪問Linux服務(wù)器
要實現(xiàn) Java 遠(yuǎn)程訪問 Linux 服務(wù)器,首先要建立 SSH 連接。
SSH(Secure Shell)是一種強(qiáng)大的網(wǎng)絡(luò)安全技術(shù),可以在受信任的兩臺主機(jī)之間創(chuàng)建一條加密的連接,以保護(hù)數(shù)據(jù)進(jìn)行傳輸。
一般來說,SSH服務(wù)器使用22端口,只要將服務(wù)器的 IP 地址及端口填入 SSH 客戶端實現(xiàn)連接,就可以得到連接權(quán)限。
JSch是SSH2的純Java實現(xiàn) 。
通過使用 jsch 開源庫處理 SSH 連接,session 對象來發(fā)送指令并且解析返回值,以及最終關(guān)閉連接,可以實現(xiàn) Java 程序和遠(yuǎn)程服務(wù)器之間的交互。
建立 SSH 連接之后,我們可以使用 Java 語言的相關(guān)的 API 來控制遠(yuǎn)程的 Linux 服務(wù)器,
具體的步驟如下:
1.使用jsch開源庫負(fù)責(zé)SSH連接
來執(zhí)行連接服務(wù)器:
// 創(chuàng)建 Jsch 實例
JSch jsch = new JSch();
// 指定服務(wù)器IP地址
String host = “172.16.3.15”;
// 設(shè)置SSH服務(wù)器端口,默認(rèn)端口為22
int port = 22;
// 建立連接
Session session = jsch.getSession(user,host, port);
// 有密碼設(shè)置密碼無密碼無需配置
session.setPassword("123");
// 解決用戶不能遠(yuǎn)程登錄
// session.setConfig("userauth.gssapi-with-mic", "no");
// 設(shè)置第一次登陸的時候提示,可選值:(ask | yes | no)
// session.setConfig("StrictHostKeyChecking", "no");2.使用session對象來發(fā)送指令至服務(wù)器
// 打開連接 session.connect(); // 10秒連接超時 // session.connect(10 * 1000); // 執(zhí)行指令 String command = “l(fā)s -lha”; Channel channel =session.openChannel(“exec”); // 設(shè)置指令 ((ChannelExec) channel).setCommand(command); // 接收數(shù)據(jù) InputStream in = channel.getInputStream(); // 執(zhí)行 channel.connect();
3.解析返回值
// 申明緩存區(qū)
byte[] tmp = new byte[1024];
// 將返回的數(shù)據(jù)放入緩存中
while(true){
while (in.available() > 0) {
int i = in.read(tmp, 0, 1024);
if (i
}
}最后,關(guān)閉連接:
// 關(guān)閉連接 session.disconnect(); channel.disconnect();
或者執(zhí)行Linux命令
String shell = "cd /home/test/check_tran/output && sudo rm -rf 19321 "; List<String> list = session.immediateShell2(shell); System.out.println(list.toString()); session.disconnect();
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java 程序設(shè)計總復(fù)習(xí)題(java基礎(chǔ)代碼)
這篇文章主要介紹了Java 程序設(shè)計總復(fù)習(xí)題,主要是java基礎(chǔ)代碼,方便學(xué)習(xí)java的同學(xué)2021-05-05
Spring Boot Hello World的實現(xiàn)代碼
這篇文章主要介紹了Spring Boot Hello World的實現(xiàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06
Spring?Boot中YAML?配置文件常見問題及解決方案
在Spring Boot項目中,配置文件是不可或缺的一部分,用于自定義應(yīng)用行為、覆蓋默認(rèn)設(shè)置,本文給大家介紹SpringBoot中YAML配置文件的相關(guān)知識,感興趣的朋友跟隨小編一起看看吧2025-09-09
NoHttpResponseException問題分析解決記錄
這篇文章主要為大家介紹了NoHttpResponseException問題分析解決記錄,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08
關(guān)于通過java調(diào)用datax,返回任務(wù)執(zhí)行的方法
今天小編就為大家分享一篇關(guān)于通過java調(diào)用datax,返回任務(wù)執(zhí)行的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08
Spring相關(guān)知識點(diǎn)的總結(jié)與梳理
今天小編就為大家分享一篇關(guān)于Spring相關(guān)知識點(diǎn)的總結(jié)與梳理,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-02-02
Java?+?Selenium?+?OpenCV解決自動化測試中的滑塊驗證問題
OpenCV是一個基于Apache2.0許可(開源)發(fā)行的跨平臺計算機(jī)視覺和機(jī)器學(xué)習(xí)軟件庫,可以運(yùn)行在Linux、Windows、Android和Mac?OS操作系統(tǒng)上,這篇文章主要介紹了Java?+?Selenium?+?OpenCV解決自動化測試中的滑塊驗證,需要的朋友可以參考下2022-07-07
SpringCloud使用集中配置組件Config規(guī)避信息泄露
項目應(yīng)用中,數(shù)據(jù)庫連接信息、Access-key、Secret-key等由于其及其敏感和特殊性,一旦泄露出去就很可能會使得應(yīng)用遭到黑客攻擊,例如數(shù)據(jù)庫賬號密碼泄露可能導(dǎo)致“拖庫”,甚至數(shù)據(jù)丟失。此等事件偶有發(fā)生,那么,在分布式微服務(wù)項目中,怎么避免這種情況呢2022-07-07

