英文原文正文为项目原始 README(英文),本站后续会翻译为中文,当前仅剔除图片与无关章节并统一排版。
OmnySSH
你管理的每一台服务器,都在一个窗口中。仪表板、终端、SFTP、代码片段。
📷 原文此处有图片,请前往 GitHub 仓库查看完整内容。
安装 •
功能 •
SSH 密钥 •
比较 •
TUI 版本 •
Telegram
安装
在 macOS 和 Linux 上的一个命令:
curl -fsSL https://raw.githubusercontent.com/timhartmann7/omnyssh/main/install.sh | sh
该脚本会检测您的操作系统和架构,并安装最新的桌面版本 —— 在 macOS 上安装到 /Applications,在 Linux 上安装到您的应用菜单。想要终端应用程序,还是两者都想要?使用 curl … | sh -s -- --tui(或 --both)。更喜欢点击操作?从 Releases 下载适合您平台的文件。
| 平台 | 文件 |
|---|---|
| macOS 苹果硅芯片 | OmnySSH-aarch64-apple-darwin.dmg |
| macOS Intel | OmnySSH-x86_64-apple-darwin.dmg |
| Linux x86_64 | OmnySSH-x86_64.AppImage / .deb / .rpm |
| Windows x86_64 | OmnySSH-x86_64-setup.exe |
无需账户,无需登录界面,无遥测。应用程序打开时显示一个空仪表板,如果你有现有的 ~/.ssh/config,它会读取该配置——包括通过堡垒机(ProxyJump)的主机。
它的功能
你只需添加一次服务器。之后,它会以卡片的形式显示在仪表板上,实时显示 CPU、内存和磁盘使用情况、运行时间、发行版、占用 CPU 的顶级进程,以及运行内容的徽章。点击 sh 即可进入真实的 PTY 终端。点击 files 会打开一个双面板的 SFTP 浏览器。一屏可以显示十台服务器,并且会自动刷新。
实时仪表板
每个主机都有显示 CPU、内存和磁盘使用情况的卡片,运行时间,操作系统版本,顶级进程,以及显示正在运行容器数量的 Docker 徽章。条形图会变成黄色,然后变成红色,因此病态服务器从房间另一端就能明显看出。按标签对网格进行分组,排序,在桌面应用中将卡片拖动到你自己的顺序。
真实终端
选项卡中的完整 PTY 会话。根据需要打开多个服务器,通过侧边栏在它们之间切换,并在仪表板工作时保持它们运行。
双面板 SFTP
左边是本地,右边是远程。勾选你想要的文件和文件夹并移动它们,或者直接将它们从一侧拖到另一侧,或者直接从你的文件管理器拖到服务器上。查看进度条,一次选择多个文件,查看每个文件的最后修改时间。反正没有人记得 scp -r 的语法。
片段
保存你每周粘贴的命令。选择一个片段,勾选要发送的主机,它会同时在所有主机上运行。片段可以带参数,所以 sudo systemctl restart {{service}} 会要求你输入名称。
搜索所有内容
按 ⌘K 开始输入。你拥有的每个主机,以及所有已打开的会话。按回车会让你进入所选的主机终端,或者回到你离开的会话。
主播模式
将屏幕上的每个真实 IP 替换为假的 IP。录制演示或共享屏幕而不会泄露客户端基础设施。
明暗主题
两者都在应用中发货。从侧边栏切换。
小
在打开多个会话时,约使用了 130 MB 的 RAM,进行 20 MB 下载。Termius 在同一台机器上,无任何操作时,占用了九个进程共 649 MB。完整数据见 比较。
SSH 密钥设置
在新 VPS 上使用密码认证是你总是想修复但从未修复的事情。OmnySSH 一键即可完成。
选择一个你自己添加但没有配置密钥的主机,点击设置 SSH 密钥,应用会生成一个 Ed25519 密钥,将公钥部分追加到 authorized_keys 中,并将主机切换到密钥认证。然后,它会用新密钥打开一个新的连接以验证密钥是否可用,只有在此之后才会关闭密码登录。中间没有确认步骤:开始这个流程就意味着要完成整个操作。
在修改 sshd_config 之前,它会在服务器上保存一个备份。如果任何步骤失败,它会恢复备份,并保持您的访问权限完全不变。您的私钥不会离开您的机器,除了您选择的服务器之外,任何东西都不会被发送到其他地方。
代码位于 crates/omnyssh-core/src/ssh/key_setup.rs。在将其用于生产之前请先阅读。开源发布它的整个意义就在于此。
带有口令的密钥也可以。当密钥被加密时,OmnySSH 会请求输入一次口令,并将其保存在内存中直到你退出;它永远不会被写入磁盘。在 macOS 和 Linux 上,已加载到 ssh-agent 的密钥会在不询问的情况下使用。主机的 密码 字段是服务器登录密码,而不是密钥口令。
比较
在 M4 Mac 上同时打开两个应用并处于空闲状态时测量的内存和 CPU。
| OmnySSH | Termius | tmux + ssh | |
|---|---|---|---|
| 空闲时的 RAM | ~130 MB | ~649 MB | 很小 |
| 进程 | 4 | 9 | 1 |
| 实时指标仪表板 | ✅ | ✅ | ❌ |
| 双面板 SFTP | ✅ | ✅ | ❌ |
| 片段和广播 | ✅ | ✅ | ❌ |
| 一键设置 | ✅ | ❌ | ❌ |
| 需要账户 | ❌ | ✅ | ❌ |
| 遥测 | ❌ | ✅ | ❌ |
| 开源 | ✅ | ❌ | ✅ |
| 价格 | 免费 | 💰 | 免费 |
tmux 之所以保留在表格中,是因为它是我们大多数人实际使用的。它在轻量方面占优势,在所有视觉表现上都不如人意。
TUI 版本
OmnySSH 在终端中启动,TUI 仍然存在,仍在维护,仍会发布更新。
📷 原文此处有图片,请前往 GitHub 仓库查看完整内容。
底层是相同的引擎:这个仓库是一个 Cargo 工作区,其中 crates/omnyssh-core 保存逻辑,前端则构建在其上。包括仪表板、SFTP、代码片段、多会话标签、模糊搜索,以及四个主题(default、dracula、nord、gruvbox)和 config.toml 中可重新映射的按键。
📷 原文此处有图片,请前往 GitHub 仓库查看完整内容。
# cargo cargo install omnyssh
homebrew
brew install timhartmann7/tap/omnyssh
nix
nix run github:timhartmann7/omnyssh
然后运行 `omny`。按 `a` 添加主机,`/` 搜索,`g` 按标签分组,`?` 获取帮助,`Shift+K` 在选定的主机上设置密钥。
为 Linux、macOS、Windows 和 Termux 提供的预构建 TUI 二进制文件可在 [Releases](https://github.com/timhartmann7/omnyssh/releases) 页面中的 `omny-*` 文件下找到。配置文件位于 Linux 的 `~/.config/omnyssh/`,macOS 的 `~/Library/Application Support/omnyssh/`,Windows 的 `%APPDATA%\omnyssh\`。启动时会读取你的 `~/.ssh/config`,但不会对其进行写入。
完整选项、快捷键绑定和配置示例:`man omny`。
---
## 故障排除
**macOS:网络上的主机无法访问,显示 “No route to host”。** macOS 只允许应用在你授权后访问本地网络上的设备。在系统设置 → 隐私与安全 → 本地网络 中打开 OmnySSH(如果已经打开,先关闭再重新打开),然后重新打开应用。对于 `omny`,它运行的终端应用也需要相同的权限;苹果自带的终端已经拥有该权限。
**群晖:输入密码后终端立即出现“Permission denied, please try again.”。** DSM 仅向管理员组成员提供 shell,且仅在 控制面板 → 终端机与 SNMP → 启用 SSH 服务 开启时可用。其他帐户仍然可以使用 SFTP。
---
## 开发者说明
我在 Telegram 上写我正在构建的内容。发布说明、进行中的截图、基准测试,以及在此过程中出错的事情。通常是在它们出现在其他地方之前。
### 👉 [**t.me/timhartmanndev**](https://t.me/timhartmanndev)
---
## 贡献
欢迎提交拉取请求。[CONTRIBUTING.md](https://github.com/timhartmann7/omnyssh/blob/main/CONTRIBUTING.md) 包含了设置、规范和检查清单。如果你计划做一些大的改动,请先打开一个 issue,这样我们就不会重复开发。
工作区布局:
crates/omnyssh-core engine, frontend agnostic
crates/omnyssh TUI application (binary: omny)
crates/omnyssh-gui Tauri desktop application
## 许可证
Apache 2.0。见 [LICENSE](https://github.com/timhartmann7/omnyssh/blob/main/LICENSE)。
### ⭐ 如果 OmnySSH 为你节省了一个终端标签,请给仓库加星
[报告一个错误](https://github.com/timhartmann7/omnyssh/issues) •
[请求一个功能](https://github.com/timhartmann7/omnyssh/issues) •
[讨论](https://github.com/timhartmann7/omnyssh/discussions)- 本文标题:omnyssh - 适用于 macOS
- 本文链接:https://cn121.com/desktop/timhartmann7-omnyssh.html
- 原项目:timhartmann7/omnyssh 版权归原作者 timhartmann7 及贡献者所有
- 收录信息:本站于 2026-10-18 收录本项目,本页所列协议与仓库指标均为收录当时的状态;该日期之后原项目的版本更新与协议变更,本页不作同步。
- 开源协议:收录时本项目采用 Apache-2.0(查看 LICENSE 原文),本站转载其原始文档(未改动文字,仅剔除图片与无关章节);使用、修改、分发请以该仓库 LICENSE 原文为准。本站对原文仅作排版与图片地址适配, 并保留原项目的 NOTICE 与署名要求。
- 站点出处:本文首发于 OneTwoOne,收录自 GitHub 开源项目 timhartmann7/omnyssh。
- 内容说明:本页正文为原项目 README 原文(英文),本站后续会翻译为中文(当前尚未译出,仅将二级标题译为中文,便于按栏目定位;标题原文可在下方原仓库中查看),仅剔除了图片与赞助等无关章节、并把相对链接改为绝对地址;页首简介为机器翻译自仓库描述。
- 引用声明:商业转载、第三方聚合或 AI 检索训练引用时,请务必保留以上来源出处、本文永久链接,以及原项目的版权声明与许可信息。
- 下架通道:若原项目此后变更或收紧了许可协议、或作者/权利人认为本站的收录方式(译文、排版适配、简介翻译等)超出其授权范围,请通过 xyd3302001@163.com 发送下架通知,并附上项目地址与本页链接。本站核实后将第一时间删除本页内容,或改为不复制原文的目录性收录;署名更正等其他要求可一并提出。