为什么我为macOS 建造了 SSH 配置和隧道管理器

为什么我为macOS 建造了 SSH 配置和隧道管理器

2026年8月26日2 次浏览来源:Dev.to阅读原文

我需要的每一个内部工具都放在SSH后面.

Grafana, Prometheus, 集合体, 内部AI工具, 没有一个在公共场合回答, 这是正确的设置 任何有真实数据背后, 我也不会改变它。

我所做的改变是每天四次从记忆中打入三台不同的机器。

所以一个周末,我开始写SSH 配置经理。

这是一个本地的macOS应用软件, 编辑时不会破坏格式, 我先为我自己的工作流程写的 把它放在App Store 之后, 一旦它真正对我有用 我想其他人在挣扎 与完全相同的摩擦。

VPN问题 人们问的第一件事是:为什么不运行一个VPN,并用它完成呢?

公平的问题,但诚实的答案是,SSH是我已经了解的内外的工具.

我已经安排了足够多的时间来知道什么和实际上的变化。

当连接停止工作时,我通常可以点出打破它的确切行.

VPN在下面引入了整个第二个网络层,完整地完成了自己的证书,自己的背景守护进程以保持补丁,以及自己独特的故障模式来在生产下线时于凌晨2:00调试.

SSH已经出现在我所接触的每一个Linux服务器和每一个我拥有的开发者机器上——没有什么新东西可以推出,也没有什么新东西可以保证安全.

取舍是真实的,我宁愿在前面承认这一点。

没有VPN的操作意味着没有透明的网络路线:我想接触到的每一个内部服务都必须事先明确传送到当地港口,没有我的配置的同事没有到达任何一个港口.

不过,我宁愿保持一个干净的港口前行清单,也不愿维持另一个背景守护进程。

贝壳异名不能活出三台机器 对长指令的明显固定是一组 shell 函数.

在实践中,这对我来说是一团糟。

我使用MacBook Pro来完成大多数日常任务,但ScyllaDB的工作发生在Linux上,因为每个团队成员都使用Linux,工具设定假设.

这些环境在很多不同的贝壳,不同的密钥路径和不同的目录主机上并不一致.

我从来没有得到dotfile同步 进入一个状态, SSH的别名是干净的共享 而不是混乱的合并。

故障模式是可以预测的:我需要的远程机器上缺少笔记本电脑上的别名,或者更糟糕的是,它指向一个几个月前移动的港口。

配置文件本身是已经可移植并普遍标准化的作品.

所有东西都从盒子里读出:,,,,和我的编辑的远程开发插件.

围绕外壳脚本而不是外壳脚本构建一个工具是核心设计决定,其他一切来源于此.

没有告诉你什么是配置键 另一个摩擦点是标准文本编辑器将文本当作任意的blob.

拼错的指令不是自动完成的,也不是标出标记的——当您认为配置的设置被默默地忽略时,您会在连接时间发现.

一个关键词的实际定义生活在一个单独的终端窗口中的人页内,这恰恰是您在编辑时不想前后相接的地方.

为了解决这个问题,应用程序嵌入了一个全面的关键词目录.

目前包含95个条目,每个条目都指定了它的单词拼写,预期值类型(字符串,整数,布尔语,固定的enum,路径,或列表),类别部分,以及直接从 .

该注册授权实时自动补全, 一个可搜索的“ 添加设置” 拾取器, 以及内置的字段文档 —— 消除对它是否、 或者是否接受文件路径的第二次猜测 。

编辑引擎完全没有损失.

注释、空白行和自定义缩进格式保持不变。

只有修改后的指示才能在保存上重写.

这证明至关重要:我的SSH配置包含多年的内在评论来解释

分享