Skerry

安装与首次运行

四个平台,一个内核。挑好安装包,解锁保险库,连上去。同步服务器是可选的,放在最后。

安装

所有安装包都在发布页上。安装过程中不会向任何地方回传数据。

  1. Linux — AppImage,免安装直接运行

    shell
    chmod +x Skerry-*.AppImage
    ./Skerry-*.AppImage

    需要 FUSE。没有的话,加 --appimage-extract-and-run 运行。

  2. Linux — Debian、Ubuntu

    shell
    sudo apt install ./skerry_*_amd64.deb
  3. Linux — Fedora、RHEL

    shell
    sudo dnf install ./skerry-*.x86_64.rpm
  4. Windows — .msi 安装包

    构建未做代码签名:SmartScreen 会提示“Windows 已保护你的电脑”→ 更多信息 → 仍要运行。便携版 .zip 不需要安装。

  5. macOS — .dmg,Apple Silicon 或 Intel

    未签名也未公证:首次启动请右键点击应用 → 打开。“显示简介”里的版本号是 1.x.y,只因为 macOS 打包要求主版本号 ≥ 1 —“关于”界面显示的才是真实版本。

  6. Android — 已签名的 .apk,手动安装

    需 Android 8.0 及以上,arm64-v8a。系统询问时,允许从浏览器或文件管理器安装。

校验下载文件

每个版本都会在安装包旁附上 SHA256SUMS.txt。

  1. 拿它核对你下载到的文件

    shell
    sha256sum -c --ignore-missing SHA256SUMS.txt

    Windows 上用:certutil -hashfile Skerry-x.y.z.msi SHA256,然后肉眼比对。

首次运行

  1. 设置主密码

    它用来加密本地保险库,只留在设备上,且无法找回 — 忘了它,数据就再也解不开。Android 上之后可以在 更多 → 安全 里加上生物识别解锁。

  2. 添加主机 — 新建连接

    地址、端口、用户,然后是密钥或密码。凭据进的是保险库,不是配置文件。

  3. 或者把已有的导进来

    新建连接 → 从 ssh_config 导入,会读取 ~/.ssh/config 并列出主机供你挑选。密钥不会被导入 — 认证方式在连接时再设定。

  4. 给生产主机打标签

    打了 prod 标签的主机,每条命令都会过一遍风险检查;破坏性的那条会停下来等你确认。

自建同步服务器

可选。没有它 Skerry 也完全够用 — 它只是为了让多台设备共用一个保险库。这里没有厂商云。

  1. 把容器跑起来

    shell
    docker run -d --name skerry-sync -p 8080:8080 \
      -e SKERRY_JWT_SECRET="$(openssl rand -base64 48)" \
      -e SKERRY_ADMIN_TOKEN="$(openssl rand -hex 16)" \
      -v skerry-data:/data \
      secherkasov/skerry-sync:latest

    SQLite 放在具名卷里,零配置。SKERRY_JWT_SECRET 要留好 — 改了它,所有人都会被登出。

  2. 让应用指向它

    设置 → 同步 → 服务器地址,然后注册或登录。服务器用 SRP-6a 验证你的密码,自始至终收不到密码本身。

  3. 关联第二台设备

    在已登录的设备上:设置 → 同步 → 关联设备,然后用另一台扫码。

  4. 服务器自带 Web 控制台

    / 是公开页,/account 是你的账号区,/console 是运维视图 — 都由同一个容器提供,完全离线可用。

  5. 用 PostgreSQL 替代 SQLite

    把 docker-compose.yml 里的 db 服务和 postgres 变量取消注释即可。完整部署指南 — TLS、备份、API — 在 server/README.md 里。

从源码构建

需要 JDK 21;机器上没有的话,Gradle 的 toolchain resolver 会自己拉一个。产出的安装包对应执行构建那台机器的系统与架构。

  1. 克隆仓库

    shell
    git clone https://github.com/SeCherkasov/SkerrySSH.git
    cd SkerrySSH
  2. 运行桌面版

    shell
    ./gradlew :composeApp:run
  3. 打包

    shell
    ./gradlew :composeApp:packageDistributionForCurrentOS   # .deb / .rpm / .msi / .dmg
    ./gradlew :composeApp:packageAppImage                  # 便携版 Linux .AppImage
  4. Android

    shell
    ANDROID_HOME=$HOME/Android/Sdk ./gradlew :androidApp:installDebug
  5. 只要服务器,不装 Android SDK

    shell
    ./gradlew :server:run -PserverOnly

下载