团队工作免不了和小伙伴分享或协助使用命令行,共同完成系统维护之类的工作。

经调研,可以使用以下工具:

  • sshx,基于rust开发,通过webshell实现多人协作,现代化,但缺少了原生终端的使用体验
  • upterm, 基于go开发,使用ssh原生命令进行协作

本文以upterm为例,做个简单的配置使用纪要。

构建自己的服务端中转站

也就是启动uptermd服务,以docker的方式启动:

docker run -d --name uptermd -p 2222:2222 ghcr.io/owenthereal/upterm/uptermd --ssh-addr 0.0.0.0:2222 --node-addr your-server:2222

分享终端

upterm host --accept --server ssh://stanzhai.site:2222

注意,当前终端的用户的~/.ssh下需要有私钥文件(可以通过ssh-keygen创建)。

连接到分享的终端

根据上一步的SSH Session,进行连接即可,如:

ssh YSvFVZME17pmDRAxZGHj:c3RhbnpoYWkuc2l0ZToyMjIy@your-server -p 2222

连接成功后就可以愉快的结对使用命令行了。

PS

其实终端协作不止能实现协作,还能实现反向代理终端的能力,对于内部没有公网IP,需要直连终端的场景,也可以通过这种方式实现,免得基于跳板机来回折腾了。