不用安装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源创计划”,欢迎正在阅读的你也加入,一块儿分享。

相关文章
相关标签/搜索