社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Git

用 AI 写了个 SSH 工具,三个月 GitHub 涨了 1000 Star!

Java知音 • 1 月前 • 142 次点击  

 

字数 1550,阅读大约需 8 分钟

前几天刷 V2EX,看到个帖子标题挺狂——"三周时间,用 AI 辅助写了个 SSH 客户端"。

点进去瞅了眼截图,界面居然还挺好看,不是那种 "开源=UI随便糊弄" 的画风。

主界面
主界面

作者叫 BigcatChen,GitHub ID 是 binaricat。说自己在找 Termius 的替代品,找不到满意的,干脆自己撸了一个。GPL-3.0 开源,macOS、Windows、Linux 全平台。

技术栈是:Electron 40 + React 19 + TypeScript + xterm.js 5 + Tailwind CSS 4。

管主机的姿势多了

SSH 客户端第一件事:你怎么管理你连的那堆机器。PuTTY 是一台一个窗口,Termius 有自己的主机库。Netcatty 给了三种视图:

网格视图,适合机器不多的时候,图标大大的,一眼认出哪台是 Ubuntu 哪台是 CentOS。它自动识别系统版本,图标给你挂好。

列表视图,机器多了以后切这个,紧凑,能快速搜索。

树形视图,按项目或者环境分组,我比较喜欢这个。开发环境丢一个组,生产环境丢另一个组,脑子不用记。

分屏和终端

分屏这东西,没用过的人觉得花哨,用过的回不去。

左边 tail -f 盯着 nginx 日志,右边 vim 改配置,下面再开个小窗跑 htop。一个窗口全搞定,不用 Alt+Tab 在三个窗口之间切到手指抽筋。

还有个广播模式。你选了五台机器,敲一次命令,五台同时执行。批量更新或者检查集群状态的时候省大事。

对了,关键词高亮我也要提一嘴。设个规则,ERROR 自动标红加粗,WARNING 标黄。日志刷屏的时候你不用瞪大眼睛找,红色自己跳出来。这功能 PuTTY 没有,Termius 免费版也没有。

50 多套内置主题,懒得搞的直接挑。我用 Dracula,紫底灰字。

改远程文件不用下载了

运维最烦的操作:改个 nginx 配置。把文件从服务器拽下来,本地改一行 worker_connections,再传回去。就一行配置,折腾三分钟。

Netcatty 左边本地文件,右边远程文件,拖拽上传下载。更关键的是右键能直接编辑远程文件,改完 Ctrl+S,自动写回服务器。

编辑器不是什么 VS Code 级别的,但改个 yaml、json、conf 绰绰有余。语法高亮有,缩进对齐有。比 ssh 进去用 nano 舒服一百倍。

sudo 提权这个细节也到位。你普通用户登录,要改 /etc/nginx/nginx.conf,它弹窗让你输 sudo 密码提权。不用退出重连 root。Termius 也有,但它收钱。

AI Agent,重头戏

我装完 Netcatty,第一个试的不是 SSH,是那个叫 Catty 的 AI Agent。

实话讲,我对 "AI 终端" 有偏见。Warp 的 AI 我用过,就是个嵌在终端里的聊天框。你问它命令,它回答,你复制粘贴自己跑。跟我切到浏览器问 Claude 有什么区别?

Netcatty 这个不一样。它不是聊天框,是执行体。

你跟它说"帮我看看这台机器内存占用前三的进程",它自己 ssh 上去跑 ps aux --sort=-%mem | head -4,结果返回来,还顺便告诉你哪个进程该杀。

更狠的是多机操作。你连着三台机器,说"把这三台组个 Docker Swarm 集群"。它自己在 manager 上 docker swarm init,拿 join token,切到 worker 上 join。全程你看着就行。

安全方面没犯傻。rmkill、改文件这些操作会弹确认框,默认不开,你得自己打开。AI 帮你干活,锅自己背。

模型支持敞开了接:OpenAI、Anthropic Claude、OpenRouter、Codex CLI 随便。对数据敏感的,本地 Ollama 跑也行。

说实话 AI 也有蠢的时候。复杂任务会绕圈,让它排查个深层网络问题,它在 ping 和 traceroute 来回跳了三圈。但这项目才几个月大,AI 搞成这样我已经不好意思骂了。

云同步不要钱

Termius 收钱的大头就是云同步。你免费版连了五十台主机,换台电脑打开,全没了。想同步?先付 $15/月。

Netcatty 干了什么?六种同步后端:GitHub Gist、S3、WebDAV、Google Drive、OneDrive,还有本地文件。端到端加密,主机配置、SSH 密钥、主题全给你同步过去。

WebDAV 对国内用户最友好。自己 NAS 搭一个,数据自己手里攥着,不经过第三方。

我一开始开了实时同步,结果切个标签页就触发一次,硬盘灯闪得我难受。改成手动以后清净了。

缺点

几周时间做的,才开源几个月,不完善的地方也不少。

技术选型用的 Electron,缺点大家估计也能猜到了。日常 300-500MB 内存,开七八个会话飙到 600MB。PuTTY 开十个才几十 MB。一个终端比我 IDE 还吃内存,我心里是不爽的。但作者一个人开发,Electron 是最务实的选型,也不能要求太高了。

移动端没有。Termius 有 iOS 和 Android,半夜服务器报警掏手机就能看。Netcatty 纯桌面,手机端还在"计划中"。

Zmodem(sz/rz)不支持。习惯在终端里敲 sz filename 拽文件的人得等等。走 SFTP 传没问题,但方式不一样。

端口转发的 UI 不够直觉,得点进连接设置好几层。YubiKey 的 FIDO2 认证也不支持。

macOS 第一次打开会提示"无法验证开发者",xattr -cr /Applications/Netcatty.app 解决。这不是它的锅,是 Apple 对未签名 Electron 应用的统一待遇。

看这 star 曲线。几个月从零涨到近2k,说明不是我一个人觉得这东西有意思。

总结

装 Netcatty 以后,我确实没再打开过别的 SSH 客户端,也可能是我本身对 SSH 的使用率不重度的原因。

不是它已经完美了,离完美还差移动端、差内存优化、差 Zmodem。有个让我佩服的地方:作者更新频率。我写这篇文章的时候翻了下 commit,基本每天一版 release。V2EX 上有人提需求,快的三天进版本。这节奏我只在早期 Obsidian 身上见过。

GitHub:github.com/binaricat/Netcatty,GPL-3.0 随便用。

 

点击下方卡片,关注Java知音

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/197060