这是一个基于Web的终端仿真器和SSH客户端的示例,使用Express框架搭建服务器,并使用NodeSSH代理到SSH服务器的Websocket连接。
[✓] 支持IP登录
[✗] 支持地址栏传参进行登录
[✗] 后期规划是否需要支持密钥登录
[✗] 支持多tab窗口,可以随时开启和关闭多个会话窗口
[✓] 可以保存主机连接信息
[✓] 支持vim,mc,irssi,vifm,top语法
[✓] 支持复制和粘贴操作
[✓] 窗口自适应
[✗] 操作录像
[✓] 心跳重连
[✗] More...
node
需要 ^16 || ^18 || ^19
版本(node >= 14
需要安装 fetch polyfill),使用 nvm 可管理本地多个 node
版本
node -v
如果你没有安装过 pnpm
npm install pnpm -g
执行如下命令下载依赖并构建前端:
pnpm install && pnpm run build
如需构建 Docker 镜像,可以继续执行以下命令:
docker build --tag webssh:dev .
Note:必须先构建前端后再构建 Docker 镜像,此举是为了减少安装 WebPack 导致的镜像体积增加。
构建完成后,在项目根目录执行以下命令启动服务端:
node server/app
启动后访问 http://127.0.0.1:8080
即可。
version: '3'
services:
app:
image: yorlg/webssh # 总是使用 latest ,更新时重新 pull 该 tag 镜像即可
ports:
- 8080:8080
感谢所有做过贡献的人!
MIT © Yorlg