Files
Nexus/docs/changelog/2026-06-07-ssh-quick-add-hostkey-chinese-errors.md
2026-07-08 22:31:31 +08:00

1.8 KiB
Raw Permalink Blame History

2026-06-07 — 快速添加 SSH 主机密钥修复 + 错误信息中文化

摘要

修复「快速添加(仅 IP)」在 SSH_STRICT_HOST_CHECKING=true 或未配置时因主机密钥未信任而在密码校验前即失败的问题;SSH 轮询/连接相关错误统一翻译为中文。

动机

用户快速添加 66.154.115.131:22 时密码正确仍失败。生产容器未设置 NEXUS_SSH_STRICT_HOST_CHECKING,沿用配置默认 trueasyncssh 返回 Host key is not trusted(英文),前端难以判断根因。

变更

文件 说明
server/infrastructure/ssh/asyncssh_pool.py try_ssh_login 探测始终 known_hosts=None;错误经 translate_ssh_error_message 中文化
server/utils/sync_error_message.py 补充 asyncssh 常见英文(主机密钥未信任、按用户 Permission denied 等)
server/config.py SSH_STRICT_HOST_CHECKING 默认改为 false(运维平台标准;安装向导 .env 仍可写 true
server/application/services/credential_poller.py format_poll_errors 预设类型显示「密码/密钥/系统」
frontend/src/pages/ServersPage.vue 失败弹窗 system 类型显示「系统」
tests/test_sync_error_message.py 主机密钥/认证失败翻译断言

迁移 / 重启

  • 重启 API 容器/进程config.py 默认值生效。
  • .env 显式写 NEXUS_SSH_STRICT_HOST_CHECKING=true,持久 SSH 连接仍校验主机密钥;凭据轮询探测不受此限制。

验证

pytest tests/test_sync_error_message.py tests/test_credential_poller.py -q
bash scripts/local_verify.sh

生产:快速添加目标 IP → 失败弹窗与 pending 列表错误应为中文;主机可达且凭据预设用户名/密码正确时应成功入库。