51 lines
1.2 KiB
Markdown
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...
|
|
```
|