sshx
一个安全的基于网络的协作终端。
特性:
- 只需运行一个命令即可与任何人共享您的终端。
- 可调整大小、移动窗口,并在无限画布上自由缩放和平移。
- 实时查看其他人光标的移动。
- 连接到全球分布式网络中最近的服务器。
- 使用Argon2和AES进行端到端加密。
- 自动重连和实时延迟估计。
- 预测性回显以实现更快的本地编辑(类似Mosh)。
访问sshx.io了解更多信息。
安装
只需运行以下命令即可获取适用于您平台的sshx
二进制文件。
curl -sSf https://sshx.io/get | sh
支持x86_64和ARM64架构的Linux和MacOS,以及嵌入式ARMv6和ARMv7-A系统。预编译的Linux二进制文件是静态链接的。
如果您只想在不安装的情况下尝试,请使用:
curl -sSf https://sshx.io/get | sh -s run
查看脚本以了解其他选项。
CI/CD
您可以在持续集成工作流中运行sshx来帮助调试棘手的问题,比如在GitHub Actions中。
name: CI
on: push
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
# ... 其他步骤 ...
- run: curl -sSf https://sshx.io/get | sh -s run
# ^
# └ 这将打开一个远程终端会话并打印URL。应该在一秒内完成。
我们没有预打包的action,因为它只是一个单一命令。它可以在任何地方运行:GitLab CI、CircleCI、Buildkite、树莓派上的CI等。
在公共GitHub仓库中添加此功能时要小心,因为任何用户都可以在CI作业运行时查看日志。
开发
如果您想贡献,以下是如何在项目上工作。
从源代码构建
要从源代码构建最新版本的客户端,克隆此仓库并运行以下命令(需要安装Rust):
cargo install --path crates/sshx
这将编译sshx
二进制文件并将其放置在您的~/.cargo/bin
文件夹中。
工作流程
首先,启动开发用的服务容器。
docker compose up -d
安装Rust 1.70+、Node v18、NPM v9和mprocs。然后运行
npm install
mprocs
这将在您的机器上并行编译并启动服务器、客户端实例和Web前端。
部署
我在Fly.io和Redis Cloud上托管应用服务器。
目前不支持自托管部署。如果您想部署sshx,您需要正确实现HTTP/TCP反向代理、gRPC转发、TLS终止、私有网状网络和优雅关闭。
请不要在公共环境中运行开发命令,因为这是不安全的。