跨平台 SSH 隧道管理器(macOS / Windows / Linux):托盘常驻 + 系统服务双形态,密码与密钥口令只存系统钥匙串。
支持 -L / -R / -D 转发,密码 / 密钥 / ssh-agent / JumpHost 全支持,可从 ssh 命令或 ~/.ssh/config 一键导入。
前置:Rust stable、Node 20 + pnpm 9。
# 桌面联调(走真实配置)
make dev
# 隔离联调(BURROW_DATA_DIR=.testdb,随便折腾,删目录即重置)
make test-gui
# 无头 CLI(同样可用 BURROW_DATA_DIR 隔离)
cargo run -p burrow-cli -- list
echo -n '口令' | cargo run -p burrow-cli -- set-secret <hostId> passphrase
cargo run -p burrow-cli -- up <tunnelId>常用 Make 目标:make test(Rust 单测)、make test-cli ARGS="list"、make build-ui、make reset-testdb。
crates/core— Rust Core:SQLite 存储(hosts/tunnels/app_state)、OpenSSH 引擎 + russh 原生引擎(试用)、子进程托管/健康检查、钥匙串、日落盘crates/cli— 无头 CLI:up/down/status/logs/list/set-secret/forget-secret,--daemon前台托管apps/desktop— Tauri 2 桌面端(托盘、开机自启、诊断包导出)contrib/— systemd / launchd 服务样例;scripts/— 开发脚本
docs/design-v0.1.md— 总体设计(架构/数据模型/里程碑)docs/DIRECTORIES.md— 数据目录与路径优先级(--db-path>$BURROW_DB_PATH>$BURROW_DATA_DIR> 便携 > 平台默认)docs/ENGINES.md— 引擎对照(OpenSSH / russh):每条隧道下拉框可选,默认自动(优先 russh,不支持的回落 OpenSSH)docs/SERVICE.md— 无头服务化(daemon + 系统服务 + CLI 运维,含 root 钥匙串注意事项)docs/RELEASE.md— 发版签名与自动更新docs/BRANDING.md— 命名规范
- 口令/密钥口令永不进数据库,只存系统钥匙串(macOS Keychain / Windows Credential Manager / Linux Secret Service),
config.db里只有引用;保存时写入后立刻回读校验,存不住当场报错 - OpenSSH 路径下口令经
SSH_ASKPASS传递(同用户进程环境可见),敏感主机建议对-L/-R隧道选用 russh 引擎(内存 zeroize,映射编辑页下拉框切换)
- 自动更新默认关闭(签名配好前见
docs/RELEASE.md);应用图标为占位图,首个正式 release 前替换 - 欢迎提 Issue / PR,请附带界面 🩺 诊断按钮导出的诊断包(不含任何口令)
MIT,见 LICENSE。