桌面软件 活跃维护

omnyssh

timhartmann7/omnyssh

适用于 macOS、Windows 和 Linux 的快速开源 SSH 客户端和服务器管理器。桌面 GUI 和终端 TUI,带有实时指标仪表板、标签式终端、SFTP 文件管理器、端口转发、一键 SSH 密钥和代码片段。由 Rust 构建。

1195
Stars 标星
70
Forks 分支
8
Watchers 关注
33
Open Issues
Rust
主要语言
Apache-2.0
开源协议
3.6 MB
仓库大小
9 天前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:timhartmann7/omnyssh
git clone https://github.com/timhartmann7/omnyssh.git
git clone git@github.com:timhartmann7/omnyssh.git
README.md main

英文原文正文为项目原始 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://www.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 发送下架通知,并附上项目地址与本页链接。本站核实后将第一时间删除本页内容,或改为不复制原文的目录性收录;署名更正等其他要求可一并提出。