shellwing:原生 SSH 客户端
一款用 Rust 编写的原生 SSH 客户端,支持 macOS、Windows 和 Linux,内置标签分屏、SFTP、端口转发与加密保险库。
- 浏览
- 2
- 访问
- 0
- 下载
- 0
- 版本
- v0.2.1
- 平台
- Windows、macOS、Linux
详细介绍
项目简介
shellwing 是一款面向 macOS、Windows 和 Linux 的原生 SSH 客户端。它用 Rust 编写,界面基于 GPUI,终端仿真基于 libghostty-vt 并在独立线程中解析,由 GPU 渲染,因此在高负载输出下仍能跑满显示器刷新率。
除终端本身外,它还集成了标签页与分屏、SFTP 文件管理、端口转发、保存的主机列表,以及可在多台设备间同步的加密保险库。
主要功能
- 原生与快速:GPU 渲染终端,任意 HiDPI 缩放下文字清晰;支持输入法(IME),候选文本跟随光标。
- 按 OpenSSH 的方式工作:读取
~/.ssh/config(别名、ProxyJump、ProxyCommand、转发、identity 文件、IdentityAgent、RemoteCommand、SendEnv、StrictHostKeyChecking、ConnectTimeout),支持known_hosts校验、agent 密钥、密钥文件、证书、keyboard-interactive 与两步验证码、通过 agent 使用安全密钥、agent 转发和 X11 转发。 - 标签页与面板:可将标签分屏到同一主机,在面板间移动,同时向所有面板输入,拖动调整标签顺序;标签标题跟随 shell 标题。
- SFTP 文件操作:浏览、上传、下载(支持拖放)、重命名、删除,并可用自己的编辑器编辑远程文件。
- 端口转发:本地、远程和 SOCKS(
-L、-R、-D),可从命令行、已保存主机或连接中的命令面板发起。 - 保存的主机:
hosts.toml支持分组、颜色、收藏、标签、跳板机、转发和连接后执行的命令;提供主机列表与命令面板查找打开。 - 保险库:密码、SSH 密钥、片段、环境、配置文件和笔记统一加密,通过系统钥匙串、Windows Hello、Touch ID 或口令解锁。
- 设备间同步:保险库、主机与设置可通过同步文件夹(iCloud Drive、Dropbox、Syncthing 等)、WebDAV、兼容 S3 的存储或 Git 仓库同步,端到端加密,并提供恢复密钥与设备配对。
- 面向日常工作:命令面板、终端内查找与历史查找、会话日志、与 SSH 标签并列的本地终端、可自定义快捷键、明暗主题(含渐变)、15 种界面语言。
- 自动重连:连接丢失后按退避策略重试,转发也随之恢复。
安装与使用
从 GitHub Releases 下载对应安装包:
| 系统 | 文件 |
|---|---|
| macOS 13 及以上(Apple silicon、Intel) | shellwing_<version>_macos_<arch>.dmg |
| Windows | shellwing_<version>_windows_x86_64-setup.exe,或 .zip |
| Linux(x86_64、aarch64) | .AppImage、.deb、.rpm 或 .tar.gz |
macOS 版本使用 Developer ID 签名并已公证。Windows 版本暂未签名,首次运行需在 SmartScreen 提示中选择 More info › Run anyway。应用会提示有新版本并可按指示安装。
从源码构建需要 Rust(rust-toolchain.toml 指定版本,可用 rustup 安装)以及位于 PATH 中的 Zig 0.17(libghostty-vt 从源码构建):
make build # 为当前电脑做 release 构建,输出到 dist/
make package # 以及发布用的安装包(docs/releasing.md)
cargo build --release # 或者手动构建
运行方式:
shellwing # 打开主机列表窗口
shellwing [user@]host[:port] # 打开并连接到该主机的标签页
shellwing --local # 打开一个本地 shell 标签页
其中 host 可以是 hosts.toml 中的主机名,也可以是 ~/.ssh/config 中的别名。各平台的工具链、Linux 依赖库等细节见 docs/platforms.md。
配置
设置、主机和主题都是配置目录中的 TOML 文件(Linux 上为 ~/.config/shellwing),修改后应用运行时即生效;应用内的 Settings 编辑的就是这些文件。完整说明见 docs/configuration.md。
注意事项
- 项目以 GNU GPL v3(或更高版本)发布;项目名称与 logo 不在 GPL 授权范围内,详见
TRADEMARKS.md。 - 从源码构建时,
crates/app/src/input.rs改编自 GPUI 示例(Apache-2.0),crates/note-editor来自 zorite-editor(MIT),内置终端主题多来自 iTerm2-Color-Schemes(MIT),各自保留原有许可证与声明。 - 如果用
.deb安装:v0.2.0 还不会显示新的更新命令,需要手动升级一次,例如sudo apt install ./shellwing_0.2.1_amd64.deb(ARM 上为arm64),会原地升级;此后应用内会显示更新命令。 - 从 v0.2.1 起提供面向 Fedora、openSUSE 等系统的
.rpm,需要 glibc 2.35 或更新版本,Rocky Linux 9、Amazon Linux 2023 等系统无法安装;AppImage 同样需要该版本 glibc。
本作品整理自 GitHub 开源项目 hivepaas/shellwing,原作者 @hivepaas,许可证 GPL-3.0。中文介绍由 AI 根据项目 README 整理,以原仓库为准。
更新记录
- v0.2.1当前版本
新增 Fedora、openSUSE 等系统的 .rpm 包,并在标签页上方显示新版本提示,提供更新、跳过此版本和关闭按钮;设置中的关于页会按系统显示 apt、dnf 或 zypper 更新命令。
- v0.2.0
v0.2.0:像 ssh 一样读取 ~/.ssh/config;macOS 版本签名并公证;终端引擎升级到 Ghostty 1.4.0 并包含安全修复;要求 macOS 13+;修正 Match 块与指定密钥的处理。
评论