7a9dc3d3fc
Co-authored-by: Cursor <cursoragent@cursor.com>
1.3 KiB
1.3 KiB
2026-06-09 — 修复凭据页「新建 SSH 密钥」列表不显示
摘要
凭据管理 SSH 密钥 Tab 列表始终为空;新建后看似「没保存」。
根因
GET /api/ssh-key-presets/返回纯数组(与密码预设相同)- 前端误用
fetchPagePerPage,期望{ items, total },导致items恒为[] - 保存未校验名称/私钥;编辑时空私钥可能被提交
涉及文件
frontend/src/components/credentials/CredentialsManager.vue— 改用http.getList;表单校验;编辑 PUT 省略空私钥server/api/settings.py— 列表增加private_key_set
迁移 / 重启
- 前端构建 + 热更新;后端小改需重启 API
后续(同主题)
server/utils/ssh_key_pem.py:保存前用 asyncssh 校验 PEM(兼容-----BEGIN RSA PRIVATE KEY-----等);公钥留空则自动推导- 表单提示:整文件粘贴 PEM,含首尾行
验证
pytest tests/test_ssh_key_pem.py -q
cd frontend && npm run type-check
凭据页 → SSH 密钥 → 粘贴与 nz-admin.pem 同格式的 RSA PEM → 保存后列表出现;私钥列「已设置」。
追加 — 数据库凭据默认主机
- 新建数据库凭据时主机默认
127.0.0.1(子机本机 MySQL 常见场景)