日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

JSch - Java Secure Channel : java 代码实现服务器远程操作

發(fā)布時間:2023/12/18 javascript 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JSch - Java Secure Channel : java 代码实现服务器远程操作 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、前言

?

前些天發(fā)現(xiàn)了一個巨牛的人工智能學習網(wǎng)站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉(zhuǎn)到教程。

?

JSch是SSH2的純Java實現(xiàn)?。

JSch允許您連接到sshd服務(wù)器并使用端口轉(zhuǎn)發(fā),X11轉(zhuǎn)發(fā),文件傳輸?shù)?#xff0c;您可以將其功能集成到您自己的Java程序中。JSch獲得BSD格式許可證。

?

最初,我們開發(fā)這些東西的動機是允許我們的純Java X服務(wù)器?WiredX的用戶享受安全的X會話。所以,我們的努力主要是為了實現(xiàn)用于X11轉(zhuǎn)發(fā)的SSH2協(xié)議。當然,我們現(xiàn)在也有興趣添加端口轉(zhuǎn)發(fā),文件傳輸,終端仿真等其他功能。

官網(wǎng)上有很詳細說明和例子:

官網(wǎng):http://www.jcraft.com/jsch/

----------------------------------------------------------------------------------------------------------------------------------

?

?

二、 實現(xiàn)demo?

1. 工具類:

?

  • USER:所連接的Linux主機登錄時的用戶名
  • PASSWORD:登錄密碼
  • HOST:主機地址
  • DEFAULT_SSH_PROT=端口號,默認為22
package util;import java.io.InputStream; import java.io.OutputStream; import java.util.concurrent.TimeUnit;import com.jcraft.jsch.Channel; import com.jcraft.jsch.JSch; import com.jcraft.jsch.Session;public class SSHUtil {private Channel channel;private Session session = null;private int timeout = 60000;public SSHUtil(final String ipAddress, final String username, final String password) throws Exception {JSch jsch = new JSch();this.session = jsch.getSession(username, ipAddress, 22);this.session.setPassword(password);this.session.setConfig("StrictHostKeyChecking", "no");this.session.setTimeout(this.timeout);this.session.connect();this.channel = this.session.openChannel("shell");this.channel.connect(1000);}public String runShell(String cmd, String charset) throws Exception {String temp = null;InputStream instream = null;OutputStream outstream = null;try {instream = this.channel.getInputStream();outstream = this.channel.getOutputStream();outstream.write(cmd.getBytes());outstream.flush();TimeUnit.SECONDS.sleep(2);if (instream.available() > 0) {byte[] data = new byte[instream.available()];int nLen = instream.read(data);if (nLen < 0) {throw new Exception("network error...桌面有錯誤");}temp = new String(data, 0, nLen, "UTF-8");}} finally {outstream.close();instream.close();}return temp;}public void close() {this.channel.disconnect();this.session.disconnect();} }

?

2. 調(diào)用:

import util.SSHUtil;public class Test {public static void main(String[] args) throws Exception{SSHUtil sshUtil = new SSHUtil("xx.xx.xx.2", "root", "xxxxxng");String res = sshUtil.runShell("cd xxx\n ps -ef | grep java | awk '{print $2}' | xargs kill -9 \n nohup java -jar xxxx-0.0.1-SNAPSHOT.jar & \n", "utf-8");//重啟數(shù)據(jù)庫//String res = sshUtil.runShell("docken restart JY_mysql \n", "utf-8");//String res = sshUtil.runShell("nohup java -jar forlovehome-0.0.1-SNAPSHOT.jar & \n", "utf-8");// String res = sshUtil.runShell("/usr/apache-tomcat-7.0.47/bin/startup.sh\n", "utf-8");System.out.println(res);sshUtil.close();} }

?

?

?

參考:http://www.importnew.com/22322.html

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

?

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結(jié)

以上是生活随笔為你收集整理的JSch - Java Secure Channel : java 代码实现服务器远程操作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。