不用安裝Xshell、Xftp,便可遠程操做服務器,看看黑科技Spring Boot 實如今線Web SSH

努力應該成爲一種習慣,而不是一時的興起。這樣未來你纔可能頗有底氣地說:我獲得的歷來都不是由於僥倖。


  • 前言前端

    • 擴展:什麼是堡壘機web

  • 實現spring

    • 依賴shell

  • 相關截圖數據庫

    • 登陸瀏覽器

    • 命令執行安全

    • 文件列表、刪除、下載服務器

    • 文件上傳微信

前言

以前講過,我如今在一家國企上班,因爲集團網絡環境是封閉的內網,平時的部署上線,日誌排查是經過一個跳板堡壘機去鏈接內網機器,大體狀況以下圖:websocket

以及聯想到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>

相關截圖

登陸

命令執行

文件列表、刪除、下載

文件上傳

因爲相關實現較爲簡單,只要看下JSchxterm.js便可實現,還能自由擴展相關功能。

若是是比較懶的伸手黨想要所有代碼或者交流的話可聯繫做者微信【lakernote】

參考:

  • https://blog.csdn.net/NoCortY/article/details/104772431


今天的分享就到這裏了,閱讀有收穫的同時也歡迎您關注個人公衆號Java學習指南,在這裏會分享熱門、實用的Java技術乾貨,你們一塊兒學習,加油🤠


本文分享自微信公衆號 - Java學習指南(gh_85b94beaede2)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索