共計 1405 個字符,預計需要花費 4 分鐘才能閱讀完成。
丸趣 TV 小編給大家分享一下不安裝 Xshell、Xftp 如何遠程操作服務器,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
前言
之前講過,我現在在一家國企上班,由于集團網絡環境是封閉的內網,平時的部署上線,日志排查是通過一個跳板堡壘機去連接內網機器,大致情況如下圖:
以及聯想到 Alibaba 開源的 Java 診斷工具 Arthas,其 Web Console 在瀏覽器上就可以執行命令,操作簡單,界面也非常的 nice。
然后就想著去實現一個自己的 Web SSH,去探究其內部的原理。
實現
webssh 泛指一種技術可以在網頁上實現一個 SSH 終端。從而無需 Xshell 之類的模擬終端工具進行 SSH 連接,將 SSH 這一比較低層的操作也從 C / S 架構扭成了 B / S 架構。
工作原理
+---------+ http +--------+ ssh +-----------+ | browser | ========== | webssh | ======= | ssh server| +---------+ websocket +--------+ ssh +-----------+
WebSocket 長連接,用于指令發送和響應的實時交互
xterm.js 是一個基于 WebSocket 的容器,它可以幫助我們在前端實現命令行的樣式。
JSch 是 SSH2 的一個純 Java 實現。它允許你連接到一個 sshd 服務器,使用端口轉發,X11 轉發,文件傳輸等等。
實現功能
命令執行
文件上傳 / 下載
相關代碼
依賴
parent groupId org.springframework.boot /groupId artifactId spring-boot-starter-parent /artifactId version 2.3.7.RELEASE /version relativePath / !-- lookup parent from repository -- /parent dependencies !-- Web 相關 -- dependency groupId org.springframework.boot /groupId artifactId spring-boot-starter-web /artifactId /dependency !-- jsch 支持 -- dependency groupId com.jcraft /groupId artifactId jsch /artifactId version 0.1.54 /version /dependency !-- WebSocket 支持 -- dependency groupId org.springframework.boot /groupId artifactId spring-boot-starter-websocket /artifactId /dependency /dependencies
相關截圖
登錄
命令執行
文件列表、刪除、下載
文件上傳
由于相關實現較為簡單,只要看下 JSch 和 xterm.js 即可實現,還能自由擴展相關功能。
以上是“不安裝 Xshell、Xftp 如何遠程操作服務器”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注丸趣 TV 行業資訊頻道!