Skip to Content

服务

配方服务只有三个规范字段:nameenabled,以及开放的 config 对象。形状会通过结构性校验,但配置键只有在所选构建工作进程或功能钩子实现它时才会生效。校验并不能证明守护进程已被安装或配置。

{ "services": [ { "name": "ssh", "enabled": true, "config": { "port": 2222, "allow_root": false, "disable_password_auth": true, "authorized_keys": ["ssh-ed25519 AAAA... operator@example"] } } ] }

SSH 配置

通用 Linux 构建路径会识别这些 SSH 设置:

配方键效果
portlisten_portOpenSSH 端口,1–65,535
allow_root映射到 PermitRootLogin
disable_password_auth取反后成为 PasswordAuthentication
password_authentication直接的 OpenSSH 令牌值
pubkey_authentication直接的 OpenSSH 令牌值
client_alive_interval有上限的 ClientAliveInterval
client_alive_attempts有上限的 ClientAliveCountMax
authentication_retries有上限的 MaxAuthTries
timeout有上限的登录宽限时间
x11_forwardingallow_agent_forwardingallow_tcp_forwarding直接的 OpenSSH 令牌值
authorized_keys在受支持时安装所提供的公钥

特定工作进程路径可能只支持较小的集合。尤其是硬件、 Proxmox 和 Raspberry Pi 构建器有各自的适配器。请检查所选目标的 标准化配方和构建警告。

如果禁用了密码认证,在部署到硬件之前,至少包含一把有效公钥并独立测试。不要把私钥或密码放进配方服务配置。

其他服务

nginxwireguard、DNS、DHCP 或防火墙组件等名称不是通用配置 API。它们的软件包和配置来自所选基础对应的功能、钩子、软件包列表或启动脚本。像 config.sites 这样的任意对象可能被模式接受,但仍会被忽略。

使用此顺序:

  1. 选择基础镜像并启用具体功能或软件包。
  2. 只添加该能力已实现的配置键。
  3. 检查标准化配方和生成的警告。
  4. 为软件包存在、服务启用、侦听端口、配置文件以及应用层响应添加断言。
  5. 在提升到硬件或生产之前,启动并测试产物。

参见 功能启动脚本断言类型