docs: document sshpass bootstrap prerequisite
Pipelines as Code CI / hwlab-web-probe-sentinel-nc01- Success
Pipelines as Code CI / unidesk-host- Failed

This commit is contained in:
Codex
2026-07-10 03:52:33 +02:00
parent b198185375
commit 4891f377ea
+2
View File
@@ -28,6 +28,8 @@ Provider Gateway 是计算节点侧容器。它只主动连出到主 server 暴
新增 provider-gateway 或 legacy bootstrap 后,Docker socket、远程升级和 SSH 透传必须作为同一个部署包验收,不能只让 provider 在线就认为完成。节点侧应先启动目标宿主或 WSL 的 sshd,把维护公钥写入目标用户 `authorized_keys`,再用只读目录挂载私钥到 provider-gateway 容器内 `/run/host-ssh`provider-gateway 环境变量必须包含 `HOST_SSH_HOST``HOST_SSH_PORT``HOST_SSH_USER``HOST_SSH_KEY``HOST_REMOTE_CWD`。注册成功后,主 server 看到的 labels 必须同时满足 `hostSshConfigured=true``hostSshKeyPresent=true``hostSshTarget` 指向目标 sshd,且 `unideskCapabilities` 包含 `host.ssh`
使用初始密码把新增外部节点引导成密钥登录时,本机缺少 `sshpass` 应先安装 `sshpass`,再用受控脚本写入维护公钥;不要长期保留交互式密码登录流程,也不要把密码写入命令输出、文档、Compose env 或仓库文件。
计算节点镜像必须包含 `ssh` 客户端,否则 provider 虽然可以在线并执行 Docker 任务,但 `host.ssh` 调度会在节点侧失败。标准 `src/components/provider-gateway/Dockerfile` 已安装 `openssh-client`;如果节点使用本地兜底镜像或复制 Bun/Docker CLI 的自定义镜像,也必须同时安装或复制可用的 OpenSSH client,并在容器内通过 `ssh -V``test -r /run/host-ssh/id_ed25519``ssh -i /run/host-ssh/id_ed25519 ... <target> hostname` 做本地烟测后再接入主 server。
SSH 透传只作为维护桥,不作为普通计算任务和自动升级的执行通道。普通任务、Docker 状态采集和 `provider.upgrade` 仍必须走本地 Docker socket;SSH 透传用于节点诊断、人工修复和验证 WSL/宿主维护入口是否可达。