不安装Xshell、Xftp如何远程操作服务器

23次阅读
没有评论

丸趣 TV 小编给大家分享一下不安装 Xshell、Xftp 如何远程操作服务器,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

前言

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

不安装 Xshell、Xftp 如何远程操作服务器

以及联想到 Alibaba 开源的 Java 诊断工具 Arthas,其 Web Console 在浏览器上就可以执行命令,操作简单,界面也非常的 nice。

不安装 Xshell、Xftp 如何远程操作服务器

然后就想着去实现一个自己的 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

相关截图

登录

不安装 Xshell、Xftp 如何远程操作服务器

命令执行

不安装 Xshell、Xftp 如何远程操作服务器

文件列表、删除、下载

不安装 Xshell、Xftp 如何远程操作服务器

文件上传

不安装 Xshell、Xftp 如何远程操作服务器

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

以上是“不安装 Xshell、Xftp 如何远程操作服务器”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注丸趣 TV 行业资讯频道!