# 审计 — SSH 密钥预设列表修复

**Changelog**: `docs/changelog/2026-06-09-ssh-key-preset-list-fix.md`

## 变更文件

| 文件 | 说明 |
|------|------|
| `CredentialsManager.vue` | `http.getList` 替代 `fetchPagePerPage`；保存校验 |
| `server/api/settings.py` | 列表 `private_key_set`；保存 PEM 校验 |
| `server/utils/ssh_key_pem.py` | PEM 校验 + 公钥推导 |
| `tests/test_ssh_key_pem.py` | RSA / OPENSSH 单测 |
| `web/app/index.html` | Vite 构建产物入口 |

## Step 3

| 规则 | 结论 |
|------|------|
| 安全 | PASS — 私钥仍仅存服务端加密，列表不返回私钥 |
| 行为 | PASS — 与密码预设 Tab 一致 |

## Closure

- `npm run type-check` PASS

## DoD

- [x] changelog + audit
- [ ] 生产前端热更新
