不用安装Xshell、Xftp,即可远程操作服务器

服务器
堡垒机,即在一个特定的网络环境下,为了保障网络和数据不受来自外部和内部用户的入侵和破坏,而运用各种技术手段监控和记录运维人员对网络内的服务器、网络设备、安全设备、数据库等设备的操作行为,以便集中报警、及时处理及审计定责。

[[379086]]

本文转载自微信公众号「Java大厂面试官」,作者laker 。转载本文请联系Java大厂面试官公众号。   

 失败是什么?没有什么,只是离成功更近了一步,奥利给,加油??。

  • 前言
    • 扩展:什么是堡垒机
  • 实现
    • 依赖
  • 相关截图
    • 登录
    • 命令执行
    • 文件列表、删除、下载
    • 文件上传

前言

之前讲过,我现在在一家国企上班,由于集团网络环境是封闭的内网,平时的部署上线,日志排查是通过一个跳板堡垒机去连接内网机器,大致情况如下图:

以及联想到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    +-----------+ 
  • 1.
  • 2.
  • 3.
  • 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> 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.

相关截图

登录

命令执行

文件列表、删除、下载

文件上传

由于相关实现较为简单,只要看下JSch和xterm.js即可实现,还能自由扩展相关功能。

 

责任编辑:武晓燕 来源: Java大厂面试官
相关推荐

2019-11-21 09:24:50

SSH服务器工具

2011-07-27 13:52:02

Oracle数据库远程服务器

2024-09-09 08:36:36

Java操作远程服务器

2021-06-04 13:07:53

LinuxPythonXshell

2009-02-27 13:53:00

远程服务器RAS

2012-12-18 13:33:48

IBMdW

2011-07-19 13:02:54

服务器

2015-05-05 15:24:42

TCPIPVNC远程

2024-06-20 12:55:23

2011-08-30 11:19:25

远程服务器数据中心迁移服务器管理工具

2019-08-16 01:26:16

服务器安全恶意攻击漏洞

2010-08-29 20:53:03

DHCP服务器

2010-05-31 10:34:00

Windows下配置S

2011-07-27 10:30:27

2010-07-14 14:48:57

Telnet服务器

2010-03-18 17:16:42

服务器重启服务器

2021-06-02 14:45:52

远程服务器Python

2010-07-14 14:48:57

Telnet服务器

2011-07-12 17:42:24

2010-01-04 13:26:51

Ubuntu安装
点赞
收藏

51CTO技术栈公众号