小鹿有一台Mac和多台Win系统电脑,另外小鹿还有很多的服务器,所以小鹿一直在寻找一个可以多端同步的SSH工具。尝试过FinalShell和Termius,但最终还是选择了Tabby,如果想知道为什么,就请看完这篇文章吧!
FinalShell和Termius
想必大家对这两个终端工具都十分了解吧,下面分别是FinalShell和Termius的截图。
这两个工具对我来说各有特点:
FinalShell
优点:简单易上手,全中文,有着极其好用的SFTP工具,可以快速的将文件从本地上传到服务器,并且还支持文件的在线编辑,另外专业版还支持服务器状态的监控。
缺点:内存占用十分明显,并且会存在一个内存泄漏的情况,在windows上面主要表现为直接卡死没法操作,而在mac上面就更夸张了,直接就内存爆满以至于其他程序也无法正常使用。另外:如果你想要使用服务器SSH连接信息多端同步的话,是需要去官网购买同步服务的。
Termius
优点:支持命令的快捷输入,并且可以支持服务器之间文件的快速互传(虽然我觉得不是很快速,当然这和服务器之间的通信质量有关)另外支持链式连接,也就是说可以通过代理连接上服务器。但是Termius最大的亮点还是全端通用,我的意思是包括手机端,这对于在外需要用到SSH的人来说是十分重要的。
缺点:同步功能很贵,另外目前没找到官方的中文版本,对于本地的SFTP传输我到现在还没用明白。另外Mac端的复制粘贴很反人性。
所以在这里我要向大家介绍结合以上所有优点但是又没有什么太大缺点的工具——Tabby
Tabby的安装
首先安装Tabby可以直接去他们的GitHub网址下载对应的安装包。
选择对应系统的安装包即可,支持Win / Linux / MacO。
安装下来之后按照以下位置修改语言(可能最初版本是英文版本的,对应位置点击选择中文即可)
之后就是正常的添加SSH连接的操作了。
重点来了!!!在获取密钥之前一定要在【设置】-【保险库】先创建一个主密码,但下面的加密配置文件不要打开。
Tabby同步的实现
所有数据的存储,尤其是这种SSH连接的敏感信息存储,我都只相信存储在本地才是最优解。所以我的服务全都是能放家里云绝不放公有云。
创建一个GitHub应用用于登录到同步服务
前往https://github.com/settings/applications/new注册一个应用
Application name 随意,比如 tabby-web
Homepage URL 填写你的访问域名,可以带端口号,例如:https://tabby-web.xxx.com:8888
Authorization callback URL 要设置为 https://<your-host>/api/1/auth/social/complete/github/
例如:https://tabby-web.xxx.com:8888/api/1/auth/social/complete/github/
注册完成后,获取 Client ID 和 Client secrets,后面要用到。
创建docker服务
首先要确保你的服务器已经能够正常的访问docker仓库并且已经安装好了docker和docker compose,这是之后步骤的基础。然后按照下面的文件实例对应修改内容。
version: '3.0'
services:
tabby-web:
image: ghcr.io/eugeny/tabby-web:latest
container_name: tabby-web
restart: always
ports:
- '9001:8000'
volumes:
- ./data:/app-dist
environment:
- DATABASE_URL=sqlite:////app-dist/db.sqlite3
- PORT=8000
- DEBUG=False
- APP_DIST_STORAGE=file:///app-dist
- SOCIAL_AUTH_GITHUB_KEY=xxxx #填入Client ID
- SOCIAL_AUTH_GITHUB_SECRET=xxxxx #填入Client secrets
之后运行完成之后访问你的网址https://tabby-web.xxx.com:8888 (通常完成反代后是没有端口号的,具体自行判断或者在下面留言)
使用刚才创建GitHub应用的账号登录之后
将这里的同步密钥记录下来,这时候打开Tabby程序,找到设置-同步配置选项,然后填入你自己的服务器域名和同步密钥即可