查看原文
其他

这款国产SSH客户端很牛逼!网友直呼:666

点击关注👉 民工哥技术之路 2021-12-16

点击上方“民工哥技术之路”,选择“设为星标”

回复“1024”获取独家整理的学习资料!

前言

最近由于项目需求,项目中需要实现一个WebSSH连接终端的功能,由于自己第一次做这类型功能,所以首先上了GitHub找了找有没有现成的轮子可以拿来直接用,当时看到了很多这方面的项目,例如:GateOne、webssh、shellinabox等,这些项目都可以很好地实现webssh的功能,但是最终并没有采用,原因是在于这些底层大都是python写的,需要依赖很多文件,自己用的时候可以使用这种方案,快捷省事,但是做到项目中供用户使用时,总不能要求用户做到服务器中必须包含这些底层依赖,这显然不太合理,所以我决定自己动手写一个WebSSH的功能,并且作为一个独立的项目开源出来。

技术选型

由于webssh需要实时数据交互,所以会选用长连接的WebSocket,为了开发的方便,框架选用SpringBoot,另外还自己了解了Java用户连接ssh的jsch和实现前端shell页面的xterm.js.

所以,最终的技术选型就是 SpringBoot+Websocket+jsch+xterm.js。

WebSSH的业务逻辑实现(核心)

刚才我们实现了websocket的配置,都是一些死代码,实现了接口再根据自身需求即可实现,现在我们将进行后端主要业务逻辑的实现,在实现这个逻辑之前,我们先来想想,WebSSH,我们主要想要呈现一个什么效果。

我这里做了一个总结:

  • 1.首先我们得先连接上终端(初始化连接)
  • 2.其次我们的服务端需要处理来自前端的消息(接收并处理前端消息)
  • 3.我们需要将终端返回的消息回写到前端(数据回写前端)
  • 4.关闭连接

效果展示

  • 连接
  • 连接成功

命令操作

ls命令vim编辑器top命令

结语

这样我们就完成了一个webssh项目的实现,没有依赖其它任何的组件,后端完全使用Java实现,由于用了SpringBoot,非常容易部署。

但是,我们还可以对这个项目进行扩展,比如新增上传或下载文件,就像Xftp一样,可以很方便地拖拽式上传下载文件。

这个项目之后我会持续更新,上述功能也会慢慢实现,Github:https://github.com/NoCortY/WebSSH

来源:https://blog.csdn.net/NoCortY/article/details/104772431

推荐阅读 点击标题可跳转

淦!又是美团。。。。这次吃相太难看了

职场防坑指南(2020 版)

全球最大色情网站宣布:封杀特朗普

红旗 Linux 桌面操作系统 11 来了

华为悄悄推出"应用市场",免费、无广告,贼好用!

有人靠"抢茅台"月入百万,脚本曝光,开源可用!

万字详解!Git 入门最佳实践

分布式存储 GlusterFS 介绍与部署

6 个〞吓人〞的 Linux 命令

视频 小程序 ,轻点两下取消赞 在看 ,轻点两下取消在看

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存