/etc/apt/auth.conf.d/deb.griffo.io.conf,apt 会在每次下载时通过 HTTPS 一并发送。没有需要登录的用户面板,没有要轮换的令牌,没有许可证文件,也不限制同一套凭据用在多少台机器上。
🧾 1. 付款时会发生什么
- 你在 Stripe 完成结账。银行卡信息只交给 Stripe,从不经过这台服务器。
- Stripe 确认付款并通知仓库。访问权限就是在这一刻创建的——不是结账页面关闭的那一刻,所以仍在授权中的付款会稍慢一些。
- 系统创建你的账户,并在服务器上为它随机生成一个密码。
- 邮件发送到你在 Stripe 填写的地址,内含登录名、密码和配置命令。这是该密码唯一一次被传输。
如果几分钟内没有收到,先看垃圾邮件,然后到 Discord 提问——这是最快的途径,账户可以通过付款邮箱查到。
🔐 2. 凭据到底是什么
| 项目 | 内容 |
|---|---|
| 登录名 | 付款时使用的邮箱地址——无需选择,也无需记忆 |
| 密码 | 24 个随机字符,在服务器端生成,不由你设定 |
| 存储方式 | bcrypt 哈希。明文不会保留——之后谁也查不到,包括我 |
| 有效期 | 没有。密码不轮换、不过期;决定访问权限的只有背后的订阅 |
| 机器数量 | 不限。没有席位计数、没有激活、没有设备注册 |
因为只存哈希,丢失的密码无法找回——但可以按需重新签发。回复欢迎邮件或在 Discord 提出,就能拿到新凭据;新密码签发的那一刻,旧密码即失效。请保存好欢迎邮件,更好的做法是把密码存进密码管理器。
🖥️ 3. apt 如何认证
就是普通的 HTTPS 上的 HTTP Basic 认证——apt 多年来原生支持的机制,不需要插件、不需要辅助程序、不需要额外软件包。凭据应放在 /etc/apt/auth.conf.d/,绝不要写进 sources.list 那一行:那样机器上任何用户都能读到,apt 还会在错误信息里把它泄露出来:
sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | sudo gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | sudo tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
sudo install -m 600 /dev/null /etc/apt/auth.conf.d/deb.griffo.io.conf
sudo tee /etc/apt/auth.conf.d/deb.griffo.io.conf > /dev/null <<'EOF'
machine deb.griffo.io
login your-email@example.com
password your-subscription-password
EOF
sudo apt updateinstall -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
install -m 600 /dev/null /etc/apt/auth.conf.d/deb.griffo.io.conf
tee /etc/apt/auth.conf.d/deb.griffo.io.conf > /dev/null <<'EOF'
machine deb.griffo.io
login your-email@example.com
password your-subscription-password
EOF
apt updatesudo apt install extrepo
sudo extrepo enable griffo
sudo install -m 600 /dev/null /etc/apt/auth.conf.d/deb.griffo.io.conf
sudo tee /etc/apt/auth.conf.d/deb.griffo.io.conf > /dev/null <<'EOF'
machine deb.griffo.io
login your-email@example.com
password your-subscription-password
EOF
sudo apt update🧩 关于 extrepo 选项。 extrepo 是 Debian 官方用于管理第三方仓库的工具:它会替你写好 sources 文件并安装签名密钥,并在使用前先对照签名元数据校验该密钥。本仓库以 griffo 之名登记其中,永久免费镜像则为 griffo-free,因此在 Debian(bookworm、trixie、forky、sid)上,上面的命令就是全部配置。
extrepo 只负责 sources 文件和密钥,订阅凭据仍然要写入 /etc/apt/auth.conf.d/deb.griffo.io.conf。Ubuntu 不在覆盖范围内,因为 extrepo 只发布 Debian 各套件的元数据:在 Ubuntu 上请使用 sudo 或 root 的命令。
这就是全部的接入工作。有三个细节要注意,出问题的也正是这三处:machine 行只写主机名——deb.griffo.io,不带 https://、不带结尾斜杠、不带 /apt 路径;文件名以 .conf 结尾,因为其他扩展名会被 apt 静默忽略;文件属于 root 且权限为 600,因为 apt 拒绝读取其他用户可读的凭据——所以上面先以 600 创建空文件,再往里写入密码。 如果 apt 返回 401,完整的排查清单在这里 →
每一次请求都会在发生的当下核对数据库:登录名、密码哈希,以及该账户背后的订阅当前是否有效。什么都不缓存,也不会往你的机器上下发任何东西——正因如此,续订、取消或更换密码都会立即生效,你无需做任何操作。
🏗️ 4. 服务器、容器与 CI
一套凭据覆盖你运行的所有机器——工作站、笔记本、服务器、构建代理。把同一个 auth.conf.d 文件放到每台机器上,或在 CI 中以密文形式挂载。不该做的是把它打进会推送到公共镜像仓库的容器镜像里:它就是文件里的一个密码,会随着复制它的一切一起流传。构建镜像时请使用构建密文,或者直接从公开的 GitHub release 安装 .deb,那完全不需要凭据。
🔄 5. 年度订阅——完整生命周期
| 发生了什么 | 对访问权限的影响 |
|---|---|
| 每年续订一次 | 静默完成。Stripe 扣款,周期顺延,你的凭据不会改变——无需操作,也无需重新执行任何命令 |
| 你取消订阅 | 通过欢迎邮件中的取消链接。访问权限持续到你已付费周期的结束,之后停止 |
| 扣款失败 | 访问权限停止。更换银行卡并完成付款即可恢复——卡住了就到 Discord 询问 |
| 你之后重新订阅 | 同一账户与同一密码被重新启用。不会再发新邮件,因为什么都没有改变 |
| 你申请退款 | 退款一经办理,访问权限立即被撤销 |
| 访问权限结束 | 你会收到一封说明邮件,apt install 开始返回 401。已安装的软件包不受影响 |
♾️ 6. 终身版——有何不同
终身版是一次性付款,不是订阅。没有要续订的,也没有要取消的,没有会过期的绑定银行卡,价格调整也影响不到你。凭据的用法完全一样——同样的登录名、同样的 auth.conf.d 文件,一切照旧。如果你原本是年度订阅后来升级,则沿用现有凭据;你会收到一封确认邮件,而不是新密码。唯一会终止终身访问的,是退款。
🚦 7. 哪些完全不需要订阅
| 命令 | 需要凭据吗? |
|---|---|
apt update | 不需要——索引对所有人开放 |
apt policy / apt-cache | 不需要 |
| 浏览 /apt/dists/ | 不需要 |
apt install / apt upgrade | 需要 |
| 已经安装的软件包 | 不需要——它们永不过期,也不检查许可证 |
| deb-free.griffo.io | 不需要——永久免费,无需账户 |
GitHub 上的 .deb 文件 | 不需要——永久免费 |
所以你可以先添加仓库、运行 apt update,在付任何钱之前就看清楚提供的是哪些版本。 永久免费镜像的完整说明 →
🗃️ 8. 关于你会保存哪些信息
你的邮箱地址、Stripe 客户标识、你密码的 bcrypt 哈希,以及订阅的起止日期。整条记录就这些。支付信息由 Stripe 处理,从不会到达这台服务器。发出的邮件只有服务本身需要的那几封:你的凭据、终身访问激活时的确认,以及访问结束时的通知。没有营销,没有邮件列表。 条款和条件 →
❓ 还是拿不准?
付款之前尽管问——Discord是联系我最快的方式,关于这一切如何运作的问题都很欢迎。如果你以前在 Buy Me a Coffee 支持过这个项目,去那里说一声:你可以获得免费的终身订阅。