🔑 GitHub PAT:赛博堡垒的万能 API 通行证
This content is not available in your language yet.
在赛博工地的自动化建设中,我们经常需要让各种“无头机器”(比如 CI/CD 流水线、自动化部署工具、本地脚本)去访问我们在 GitHub 上的私有仓库(Private Repositories)。
为了安全,我们绝对不能把自己的 GitHub 登录密码硬编码在脚本里。标准的工业做法是:向 GitHub 申请一张专属的机器通行证——Personal Access Token (PAT)。
生成 GitHub Token (Classic 经典版)
Section titled “生成 GitHub Token (Classic 经典版)”GitHub 目前提供两种 Token:Fine-grained (细粒度,仍在发展中) 和 Classic (经典版)。为了确保与各种第三方工具链的最大兼容性,我们强烈建议日常基建使用 Tokens (classic)。
1. 进入 Token 签发大厅
Section titled “1. 进入 Token 签发大厅”- 登录你的 GitHub 账号。
- 点击右上角的个人头像,选择下拉菜单底部的 Settings。
- 在左侧边栏,一直滚动到底部,点击 Developer settings(开发者设置)。
- 在左侧菜单中,展开 Personal access tokens,然后点击 Tokens (classic)。
2. 创建新通行证
Section titled “2. 创建新通行证”- 点击右上角的 Generate new token,在下拉菜单中选择 Generate new token (classic)。
- 此时系统会要求你输入密码或进行二次验证 (2FA) 以确认身份。
3. 配置权限与有效期 (核心步骤)
Section titled “3. 配置权限与有效期 (核心步骤)”在这个页面,你需要为这张通行证设定权限边界:
- Note (用途备注):一定要写清楚它的用途,比如
Homelab-General-Automation或Mac-Terminal-CLI,方便你日后管理和随时吊销。 - Expiration (有效期):
- 出于安全最佳实践,建议设置 30 天或 90 天。
- 如果是高度隔离的 HomeLab 内部使用,且你极度讨厌定期更换密码,可以选择
No expiration(永不过期)。(⚠️ 风险自担)
- Select scopes (勾选权限范围):
- 最常用的权限:
repo。找到repo这个大分类(Full control of private repositories)并将其勾选。 - 只要勾选了
repo,持有这张 Token 的程序就能克隆、拉取、推送你账号下的所有私有和公开仓库代码。对于 99% 的自动化工具来说,这个权限已经足够了。 - (如果你的工具需要操作 GitHub Packages 镜像库,可以按需额外勾选
write:packages/read:packages)。
- 最常用的权限:
4. 生成并保存 Token (极度重要)
Section titled “4. 生成并保存 Token (极度重要)”- 滚动到页面最底部,点击绿色的 Generate token 按钮。
- 页面会跳转,并在屏幕上方高亮显示你刚刚生成的 Token(一长串通常以
ghp_开头的乱码)。
🛑 终极警告:阅后即焚 这是你唯一一次能在网页上看到这串 Token 的机会! 一旦你刷新或离开此页面,GitHub 将永远隐藏这串字符。请立刻将其复制,并妥善保存在你的密码管理器(如 1Password、Bitwarden)中!
🛠️ 实战案例:使用 Token 让 ArgoCD 接入私有图纸库
Section titled “🛠️ 实战案例:使用 Token 让 ArgoCD 接入私有图纸库”拿到了这把“万能钥匙”,我们怎么用它?以我们赛博工地里大名鼎鼎的总监工 ArgoCD 为例:
当你想让 ArgoCD 去监听你的私有 GitOps 仓库时:
- 打开 ArgoCD UI 面板,进入 Settings -> Repositories。
- 点击 + CONNECT REPO,选择
HTTPS连接方式。 - Repository URL: 填入你的私有仓库 HTTPS 地址(如
https://github.com/besthomelab/k3s-homelab-gitops.git)。 - Username: 填入你的 GitHub 登录用户名。
- Password: 👉 就在这里,粘贴你刚才生成的 Token!千万不要填你的 GitHub 账号密码!
- 点击 Connect,看到绿色的
Successful标志,说明你的自动化工具已经成功拿到了私有仓库的通行证。
(同理,你在命令行里使用 git clone https://... 遇到弹窗要求输入密码时,也可以直接粘贴这串 Token 作为密码使用。)