Berth 使用说明书

SFTP·终端·串口控制台,尽在一窗 — 从添加服务器到快捷键

🚀快速上手

界面构成

一个窗口里有四个区域。

添加第一台服务器

  1. 在侧边栏空白处右键点击,或按 ⌘N
  2. 填写名称和服务器地址。用户名和端口留空则使用默认值。
  3. 在列表中双击即可连接。单击只是选中。
💡 如果服务器已经可以在终端里用 ssh alias 连接,就不需要重新填写。 用侧边栏菜单中的从 ~/.ssh/config 导入⌘⇧I)一次性导入。 FileZilla 的站点列表也可以导入。

切换语言

在菜单的Berth › 设置⌘,)中,从 20 种语言里选择一种。 默认跟随系统语言,选定的语言仅应用于此应用。 更改后重新启动应用即可生效。

🗂服务器与文件夹

用文件夹归类并向下继承

用文件夹(⌘⇧N)归类服务器后,设置会向下传递。 在文件夹上设置一次用户名或警示等级,其下所有服务器都会沿用。 这个机制就是为了不用在二十台服务器上把同一个值填二十遍。

设置窗口的每个字段下方都会标明这个值来自哪里(是自己设定的,还是从某个文件夹继承来的), 并提供一个还原按钮,可恢复为继承值。

警示等级 — 开发 · 预发布 · 生产

等级优先于颜色。设为生产后,危险操作前会额外确认。在会话列表中以你选择的颜色填充,并用红色边框标示为生产,因此多个生产服务器仍可用颜色区分。在一次只显示一个的地方(如确认对话框),它保持红色作为强提醒。

点击规则

🔑连接与认证

首次连接时 — 文件夹权限

Berth 遵循 App Store 的规则(沙盒),不会随意读取主文件夹。首次打开服务器 时,会请您选择一次存放 SSH 设置、密钥、known_hosts 的文件夹(通常是 ~/.ssh)。选择一次后会记住,此后不再询问。如果您把密钥放在别处,也可以选择主 文件夹。

出于同样的原因,本地文件面板也会以您选择的文件夹作为根目录 — 可以用面板标题栏的 打开本地文件夹来更改,这个选择同样会被记住。

直接沿用 ~/.ssh/config

用别名连接时,会读取该配置块中的主机·端口·用户·密钥文件·ProxyJump· StrictHostKeyChecking。即使保存的端口已经过时,也以配置文件为准。

⚠️ 有两件事做不到。ProxyCommand 会启动外部程序, 因此在沙盒中被禁止 — 跳板机请改用 ProxyJump 来配置。 也无法访问 ssh-agent,因此会直接读取密钥文件,带密码保护的密钥会在连接时 询问密码。

认证方式

⚠️ 如果服务器在终端里只用 ssh 就能连接,选择自动即可。 出于好意指定密钥反而会导致无法连接 — 因为这样只会尝试指定的那一个密钥。

服务器发来请求时

保存密码后,连接时会代为回答一次。其余的问询 — 两步验证 代码、重新输入错误密码、带密码保护的密钥的密码 — 会在"服务器发来了请求" 窗口中原样显示服务器发来的问题,需要您自行作答。为了不让账户被锁定,保存的密码只会 自动填入一次,最多只询问三次。

想不再手动输入密码

右键点击服务器,选择在此服务器注册公钥…,即可把 ~/.ssh 中的公钥 上传到服务器。此后即可用密钥连接。

保存的密码只存在于macOS 钥匙串中。设置文件里只会留下"已保存"的标记 ,不会写入具体的值。

首次连接的服务器与主机密钥变更

首次连接的服务器会显示密钥的种类和指纹,并询问是否记住。若选择记住, 会以与 ssh 相同的格式写入 ~/.ssh/known_hosts,此后不再询问。

当服务器的身份与上次不同时也会出现此提示。可能是中间人攻击,也可能是服务器重新安装 了。Berth 不会替您判断,只提供判断所需的材料 — 新旧密钥的种类和 指纹,以及可以在设备控制台上直接核对的命令。确认无误后点击"删除旧密钥并记住新密钥",会删除 旧记录(备份为 known_hosts.old)并写入新密钥。

💡 像经常重新烧录的开发板那样每次都会看到这个窗口的设备,可以在该服务器的设置中 开启不记住主机密钥。为了把风险限制在那一台设备上, 不会改动 known_hosts生产等级下无法开启此项。

文件面板(SFTP)

上传与下载

左侧是本机 Mac,右侧是服务器。可以拖放,也可以用 ⌥⌘→(上传) · ⌥⌘←(下载)发送文件。进度会累积显示在传输队列中。

跟随终端的文件面板

在终端里执行 cd,远程面板会跟着切换到同一个文件夹。如果这种跟随造成干扰,用 ⌘⇧L 关闭它。

常用位置 · 视图

差异显示

⌘⇧Y 开启后,会把本地和远程并排比较,标出内容不同、只在一侧存在的文件。 适合只想发送必要文件时使用。

🌏 Mac 和 Linux 会用不同的字节记录韩文·日文·越南文文件名。 Berth 只在配对时才比较名称,因此看起来相同的文件不会被误判为"两侧各有一份"。 实际传输时会原样使用服务器上的文件名。

删除

⌘⌫ 默认会移动到服务器端的回收站,并且始终需要确认。 如果服务器未启用回收站,会事先提示此操作无法撤销。

⌨️终端

这是可以直接运行 vim·tmux·less 的真实 shell。 用鼠标拖选,再用 ⌘C 复制,命令粘贴时不带行尾多余的填充空格,干净利落。

粘贴确认

粘贴多行内容时,会先显示将要执行的内容。因为带换行的粘贴内容 会当场变成命令执行。看起来有风险的部分会连同原因一起标出。

放大查看

⌘↩ 放大当前区域,再按一次返回。⌥⌘↩ 只放大单个面板。 字号快捷键是 ⌘+ · ⌘- · ⌘0。 用 ⌘L 清空终端——屏幕和滚动记录被清除,只留下当前提示行。

🔌串口控制台(UART)

选择设备

⌃⌘N 添加串口控制台,然后在设置中选择已连接的设备。Berth 记住的不是路径,而是 设备本身 — 有序列号就用序列号识别,没有就用型号识别。插到不同的 USB 接口 也能找到同一台设备。

💡 该序列号来自 USB 枚举出的设备。如果使用 USB 转串口适配器, 实际上记住的是适配器,因此更换适配器后需要重新选择。

速率与线路设置

速率可以从列表中选择,也可以直接输入(像 1,500,000 这样的非标准值也可以 — 前提是适配器能接受 该值)。默认是8N1 · 无流控制,大多数控制台都用这个值。

⚠️ 没有流控制的 UART 在连续、大量通信时可能出现设备停止发送的情况。 这不是本应用特有的问题,而是线路本身的特性(同一条线缆下其他程序也会如此), 根本的解决办法是在四线线缆上开启流控制,或降低开发板一侧的速率。

记录板

在串口会话中,输入的命令及其响应会连同时间一起累积显示在右侧。 输入密码的位置会被遮盖。

快捷键

应用快捷键中始终包含 · 组合键属于 shell 和 TUI(vim·tmux),应用不会占用它们。

⌨️ 无需鼠标。 这里的每个操作都有快捷键——为不愿碰鼠标的人而做,双手无需离开键盘。
按键作用
⌘N · ⌃⌘N · ⌘⇧N添加服务器 · 添加串口控制台 · 新建文件夹
⌘I · ⌘⇧I此服务器设置 · 从 ~/.ssh/config 导入
⌘K去哪里 — 按名称查找并直接跳转
⌘1⌘9切换会话
⌃⌘← 在面板间移动
⌘↩ · ⌥⌘↩放大 / 还原 · 仅放大此面板
⌘⇧S · ⌥⌘↑ ⌥⌘↓侧边栏 · 移动分割线
⌥⌘→ · ⌥⌘←上传 · 下载
⌘D · ⌘R · ⌥⌘N固定/取消固定 · 重新读取 · 新建文件夹
⌘↓ · ⌘↑ · ⌥⌘T进入 · 返回 · 树状↔列表
⌘⌫ · ⌘⇧F在远程删除 · 在服务器上查找
⌘⇧V · ⌘⇧L · ⌘⇧Y将路径放入终端 · 终端自动跟随 · 差异显示
⌘+ ⌘- ⌘0 · ⌘⇧W字号 · 关闭此会话
⌘L · ⌘] ⌘[清空终端 · 切换右侧面板标签
⌘C · ⌘⇧P · ⌘⇧U · ⌘?复制 · 存入记录 · 重发清单 · 使用手册

常见问题

密码保存在哪里?

只保存在 macOS 钥匙串中。设置文件里只会留下"已保存"的标记。 钥匙串只在连接的那一刻打开一次。

会收集使用记录吗?

不会。应用内没有任何埋点。不会统计打开了什么、连接到了哪里。

串口控制台中途停止。

这是在没有流控制的 UART 上进行大量通信时出现的线路特性。如果是四线线缆,请在设置中 开启流控制(RTS/CTS);如果是三线,请尝试降低开发板一侧的速率,或将输出分批 发送。

已有的 SSH 配置需要重新填写吗?

不需要。从 ~/.ssh/config 导入后会直接使用原来的别名连接,并读取该配置块中的主机·端口· 用户·密钥·ProxyJump

我的配置里用了 ProxyCommand。

ProxyCommand 会启动外部程序,因此在 App Store 的沙盒中无法使用。如果配置是为了 经由跳板机连接,改用 ProxyJump 即可照常使用。出于同样的原因也无法使用 ssh-agent, 会直接读取密钥文件,带密码保护的密钥会在连接时询问密码。

支持的 macOS 版本是?

macOS 14(Sonoma)及以上版本,Apple Silicon 和 Intel 机型均可使用。

如果这份说明对您有帮助

Berth 是免费的。您可以通过赞助支持来帮助它持续开发。