Servicios
Un servicio en receta tiene solo tres campos canónicos: name, enabled y un objeto config abierto. La forma valida estructuralmente, pero una clave de configuración tiene efecto solo cuando el worker de compilación seleccionado o el hook de feature la implementa. La validación no prueba que un daemon se instaló o configuró.
{
"services": [
{
"name": "ssh",
"enabled": true,
"config": {
"port": 2222,
"allow_root": false,
"disable_password_auth": true,
"authorized_keys": ["ssh-ed25519 AAAA... operator@example"]
}
}
]
}Configuración SSH
La ruta general de compilación Linux reconoce estos ajustes SSH:
| Clave de receta | Efecto |
|---|---|
port o listen_port | Puerto OpenSSH, 1–65,535 |
allow_root | Se mapea a PermitRootLogin |
disable_password_auth | Se invierte en PasswordAuthentication |
password_authentication | Valor directo de token OpenSSH |
pubkey_authentication | Valor directo de token OpenSSH |
client_alive_interval | ClientAliveInterval acotado |
client_alive_attempts | ClientAliveCountMax acotado |
authentication_retries | MaxAuthTries acotado |
timeout | Tiempo de gracia de login acotado |
x11_forwarding, allow_agent_forwarding, allow_tcp_forwarding | Valores directos de token OpenSSH |
authorized_keys | Instala las claves públicas suministradas donde esté admitido |
Las rutas específicas de worker pueden admitir un conjunto menor. En particular, builders de hardware, Proxmox y Raspberry Pi tienen sus propios adaptadores. Inspecciona la receta normalizada y advertencias de compilación para el destino seleccionado.
Si la autenticación por contraseña está deshabilitada, incluye y prueba de forma independiente al menos una clave pública válida antes de desplegar en hardware. No coloques claves privadas ni contraseñas en la configuración de servicio de la receta.
Otros servicios
Nombres como nginx, wireguard, DNS, DHCP o componentes de firewall no son una API de configuración universal. Sus paquetes y configuración vienen de la feature, hook, lista de paquetes o script de arranque correspondiente para la base seleccionada. Un objeto arbitrario como config.sites puede ser aceptado por el esquema y seguir ignorándose.
Usa esta secuencia:
- Selecciona una imagen base y habilita la feature o paquetes concretos.
- Añade solo claves de configuración implementadas para esa capacidad.
- Inspecciona la receta normalizada y advertencias generadas.
- Añade aserciones para presencia de paquete, habilitación del servicio, puertos en escucha, archivos de configuración y una respuesta a nivel de aplicación.
- Arranca y prueba el artefacto antes de promoción a hardware o producción.
Consulta Features, Scripts de arranque y Tipos de aserción.