biyuhao/burrow

★ 0Forks 0RustGitHub ↗Compare

README

Burrow

跨平台 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,映射编辑页下拉框切换)

当前状态(v0.1.0)

  • 自动更新默认关闭(签名配好前见 docs/RELEASE.md);应用图标为占位图,首个正式 release 前替换
  • 欢迎提 Issue / PR,请附带界面 🩺 诊断按钮导出的诊断包(不含任何口令)

许可证

MIT,见 LICENSE。

Contributors

biyuhao

Issues