服务
配方服务只有三个规范字段:name、enabled,以及开放的
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 设置:
| 配方键 | 效果 |
|---|---|
port 或 listen_port | OpenSSH 端口,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_forwarding、allow_agent_forwarding、allow_tcp_forwarding | 直接的 OpenSSH 令牌值 |
authorized_keys | 在受支持时安装所提供的公钥 |
特定工作进程路径可能只支持较小的集合。尤其是硬件、 Proxmox 和 Raspberry Pi 构建器有各自的适配器。请检查所选目标的 标准化配方和构建警告。
如果禁用了密码认证,在部署到硬件之前,至少包含一把有效公钥并独立测试。不要把私钥或密码放进配方服务配置。
其他服务
nginx、wireguard、DNS、DHCP 或防火墙组件等名称不是通用配置 API。它们的软件包和配置来自所选基础对应的功能、钩子、软件包列表或启动脚本。像 config.sites 这样的任意对象可能被模式接受,但仍会被忽略。
使用此顺序:
- 选择基础镜像并启用具体功能或软件包。
- 只添加该能力已实现的配置键。
- 检查标准化配方和生成的警告。
- 为软件包存在、服务启用、侦听端口、配置文件以及应用层响应添加断言。
- 在提升到硬件或生产之前,启动并测试产物。