共计 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 行业资讯频道!