星月 2db6918b29 fix: decouple 01-ssh-keypair from 03-gitea-tea dependency
Split SSH key setup: generate first, register to Gitea later after tea/cfg are ready
2026-04-22 20:40:22 +08:00

51 lines
1.2 KiB
Markdown

# 01. SSH 密钥对
## 检查
```bash
# 是否已有 ed25519 密钥
ls ~/.ssh/id_ed25519.pub 2>/dev/null && cat ~/.ssh/id_ed25519.pub
```
✅ 达标:存在 `~/.ssh/id_ed25519.pub`,内容类似 `ssh-ed25519 AAAA... name@shazhou.work`
## 安装
```bash
# 生成密钥(替换 AGENT_NAME 为你的名字,如 xingyue / xiaomo / xiaoju)
ssh-keygen -t ed25519 -C "AGENT_NAME@shazhou.work" -f ~/.ssh/id_ed25519 -N ""
```
## 验证
密钥生成后确认文件存在即可:
```bash
ls -la ~/.ssh/id_ed25519 ~/.ssh/id_ed25519.pub
```
### 注册到 Gitea(在 03-gitea-tea 和 04-cfg 完成后执行)
拿到 Gitea 账号和 GITEA_TOKEN 后,回来把公钥注册上去:
```bash
# 方法一:通过 Gitea Web UI
# 访问 https://git.shazhou.work/user/settings/keys ,添加公钥
# 方法二:通过 API
PUBKEY=$(cat ~/.ssh/id_ed25519.pub)
TOKEN=$(cfg get GITEA_TOKEN)
curl -s -X POST \
-H "Authorization: token $TOKEN" \
-H "Content-Type: application/json" \
"https://git.shazhou.work/api/v1/user/keys" \
-d "{\"title\": \"$(hostname)\", \"key\": \"$PUBKEY\"}"
```
验证 SSH 连接:
```bash
ssh -T git@git.shazhou.work 2>&1
# 应该返回类似: Hi AGENT_NAME! You've successfully authenticated...
```