服務
配方服務只有三個規範欄位: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 這樣的任意物件可能被模式接受,但仍會被忽略。
使用此順序:
- 選擇基礎映像並啟用具體功能或套件。
- 只新增該能力已實作的設定鍵。
- 檢查標準化配方和產生的警告。
- 為套件存在、服務啟用、接聽連接埠、設定檔以及應用層回應新增斷言。
- 在提升到硬體或正式環境之前,啟動並測試產物。