Files
Nexus/docs/changelog/2026-06-09-ssh-key-preset-list-fix.md
T
2026-06-09 09:11:34 +08:00

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 常见场景)