Configurar y Solucionar Problemas de SSH en Home Assistant
Tutorial paso a paso para configurar SSH en Home Assistant OS (HAOS), resolver errores comunes de conexión y establecer acceso seguro con claves SSH
📑 Tabla de Contenido
Primero hay que aclarar que esta solución está comprobada en Home Assitant Operating System 16. ¿Necesitas acceso SSH a tu Home Assistant pero no sabes por dónde empezar?
¿Por Qué Necesitas SSH en Home Assistant OS?
El acceso SSH te permite:
- Administrar archivos directamente en el sistema
- Ejecutar comandos avanzados no disponibles en la interfaz web
- Hacer backups y restaurar configuraciones
- Debuggear problemas con logs detallados
- Automatizar tareas con scripts
Importante
Home Assistant OS NO tiene SSH habilitado por defecto por razones de seguridad. Necesitas instalar y configurar el SSH Add-on.
Configuración Inicial de SSH en Home Assistant OS
Importante
El acceso SSH en Home Assistant OS solo se habilita desde la interfaz web instalando el add-on oficial “Terminal & SSH”. No existe acceso SSH nativo ni edición de archivos en la partición boot.
Paso 1: Instalación del Add-on Terminal & SSH
-
Abre Home Assistant en tu navegador y accede con tu usuario administrador.

Imagen 1: Login Home Assistant -
En la barra lateral, haz clic en tu usuario (abajo a la izquierda) y activa el “Modo avanzado” en tu perfil.


-
Ve a Configuración > Complementos > Tienda de complementos.

Imagen 4: Tienda de complementos -
Busca el add-on Terminal & SSH y haz clic en Instalar.

Imagen 5: Complemento SSH 
Imagen 6: Instalar complemento SSH
Paso 2: Configuración del Add-on
- Una vez instalado, ve a la pestaña Configuración del add-on:

Imagen 7: Configurar complemento SSH 
Imagen 8: Configurar puerto complemento SSH
- Puedes establecer una contraseña segura o (recomendado) añadir tu clave pública SSH en
authorized_keys. - Ejemplo de configuración:
Host homeassistant HostName xxx.xxx.xxx.xxx Port 22 # O el que quieras asignar por seguridad User tu_usuario IdentityFile la_ruta_a_tu_clave_privada PasswordAuthentication no MACs hmac-sha2-256-etm@openssh.com- Si tu clave pública contiene caracteres especiales, ponla entre comillas dobles.
- No puedes usar ambos métodos a la vez.
- El acceso SSH remoto está deshabilitado por defecto; debes especificar el puerto en la configuración de red si lo necesitas.
- Guarda la configuración.

Imagen 9: Datos configuración complemento SSH 
Imagen 10: Cambio puerto SSH
Paso 3: Iniciar el Servicio SSH
- Ve a la pestaña Información y haz clic en Iniciar para activar el servicio.

Imagen 11: Complemento SSH iniciado
Paso 4: Primera Conexión SSH
- Para acceder por SSH desde tu PC, usa el comando:
ssh tu_usuario@192.168.x.x -p 2222Información
El add-on oficial se llama “Terminal & SSH”. Si cambias el puerto en la configuración, recuerda usarlo en el comando de conexión. Nunca publiques tu dirección IP privada real en foros o redes sociales.
Advertencia
Notarás que no es posible conectarte, sigue leyendo.
Configuración de Claves SSH (Método Recomendado)
Seguridad
El uso de claves SSH es mucho más seguro que las contraseñas. Te recomendamos seguir estos pasos para configurar autenticación con clave pública.
Paso 1: Generar Claves SSH
# Usar ED25519 (más moderno y seguro)ssh-keygen -t ed25519 -C "tu_usuario@192.168.x.x" -f ~/.ssh/id_ed25519_homeassistantPaso 2: Copiar la Clave Pública al Servidor
# Mostrar la clave públicacat ~/.ssh/id_ed25519_homeassistant.pub# En Windows PowerShellGet-Content "C:\Users\tu_usuario\.ssh\id_ed25519_homeassistant.pub"Copiar manualmente al servidor agregándola al archivo authorized_keys o usar ssh-copy-id en Linux/Mac
ssh-copy-id -i ~/.ssh/id_ed25519_homeassistant.pub -p 2222 tu_usuario@192.168.x.xPaso 3: Configurar el Cliente SSH
Crea/edita ~/.ssh/config:
Host homeassistant HostName xxx.xxx.xxx.xxx Port 22 # O el que quieras asignar por seguridad User tu_usuario IdentityFile la_ruta_a_tu_clave_privada PasswordAuthentication no MACs hmac-sha2-256-etm@openssh.comSolución a Errores Comunes de SSH
Error 1: “Corrupted MAC on Input”
El error completo suele aparecer así:
Corrupted MAC on input.ssh_dispatch_run_fatal: Connection to 192.168.X.X port 2222: message authentication code incorrectEste error indica que hay un problema con el Message Authentication Code (MAC), un mecanismo criptográfico que SSH utiliza para verificar la integridad de los datos transmitidos entre el cliente y el servidor.
Causas del Problema
- Incompatibilidad de algoritmos MAC entre cliente y servidor
- Problemas de red que corrompen los paquetes
- Diferencias en versiones de OpenSSH
- Configuraciones de seguridad restrictivas
Diagnóstico del Problema
Paso 1: Verificar la Conectividad de Red
Primero, asegúrate de que la conectividad básica funciona. Usa el comando correspondiente según tu sistema operativo:
Windows (PowerShell):
Test-NetConnection -ComputerName 192.168.X.X -Port 2222Mac/Linux (Terminal):
telnet 192.168.x.x 2222O usando Netcat (nc):
nc -zv 192.168.X.X 2222Paso 2: Ejecutar SSH con Debug Verbose
Para obtener más información sobre el error:
ssh -vvv usuario@192.168.X.X -p 2222Busca en la salida las líneas que muestran la negociación MAC:
debug2: MACs ctos: umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.comdebug2: MACs stoc: umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.comSoluciones al Error MAC
Solución Rápida (Una Conexión)
Prueba con diferentes algoritmos MAC hasta encontrar uno compatible:
Intenta con hmac-sha2-256-etm
ssh -o MACs=hmac-sha2-256-etm@openssh.com tu_usuario@192.168.x.x -p 2222Si no funciona, prueba con hmac-sha2-512-etm
ssh -o MACs=hmac-sha2-512-etm@openssh.com tu_usuario@192.168.x.x -p 2222O con umac-128-etm
ssh -o MACs=umac-128-etm@openssh.com tu_usuario@192.168.x.x -p 2222Solución Permanente: Configuración SSH
Para evitar especificar el MAC en cada conexión, actualiza tu archivo ~/.ssh/config:
# Windows: C:\Users\tu_usuario\.ssh\config# Linux/macOS: ~/.ssh/config
Host homeassistant HostName 192.168.x.x Port 2222 User tu_usuario IdentityFile ~/.ssh/id_ed25519_homeassistant PasswordAuthentication yes MACs hmac-sha2-256-etm@openssh.comAlgoritmos MAC Compatibles con Home Assistant
Home Assistant OS suele soportar estos algoritmos MAC:
hmac-sha2-256-etm@openssh.com✅ Recomendadohmac-sha2-512-etm@openssh.com✅umac-128-etm@openssh.com✅
Información
Los algoritmos ETM (Encrypt-then-MAC) son más seguros que los tradicionales, por eso muchos servidores modernos solo los soportan.
Ejemplo Práctico: Configuración Completa
Si tienes Home Assistant funcionando en tu red local, aquí tienes la configuración completa:
1. Crear el Archivo de Configuración SSH
# Crear el directorio .ssh si no existemkdir -p ~/.sshchmod 700 ~/.ssh2. Agregar la Configuración
Host homeassistant HostName 192.168.x.x # Reemplaza con la IP de tu Home Assistant Port 2222 # Reemplaza con el puerto configurado User tu_usuario IdentityFile ~/.ssh/id_ed25519_homeassistant MACs hmac-sha2-256-etm@openssh.com PasswordAuthentication yes UserKnownHostsFile /dev/null3. Conectarse
ssh homeassistantConfiguración Avanzada para Múltiples Servidores
Si trabajas con varios servidores que tienen el mismo problema, puedes usar una configuración global:
# En ~/.ssh/configHost * MACs hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,umac-128-etm@openssh.comConfiguraciones específicas
Host homeassistant HostName 192.168.x.x # Reemplaza con la IP de tu Home Assistant Port 2222 # Reemplaza con el puerto configurado User tu_usuario IdentityFile ~/.ssh/id_ed25519_homeassistantError 2: “Permission denied (publickey)”
Causa: El servidor no acepta tu clave pública o no está configurada correctamente.
Solución:
# Verificar que la clave pública esté en el servidorssh -v tu_usuario@192.168.x.x -p 2222
# Verificar que la clave esté en authorized_keys del servidorssh tu_usuario@192.168.x.x -p 2222 "cat ~/.ssh/authorized_keys"
# Agregar clave pública manualmente al servidorecho "tu_clave_publica_completa" >> ~/.ssh/authorized_keyschmod 600 ~/.ssh/authorized_keysError 3: “Connection timed out”
Posibles causas y soluciones:
- Puerto incorrecto:
# Verificar qué puertos están abiertosnmap -p 22,2222,22222 192.168.x.x
# En Windows PowerShellTest-NetConnection -ComputerName 192.168..x.x -Port 2222- Firewall bloqueando:
# Verificar conexión básicatelnet 192.168..x.x 2222
# O usar nc (netcat)nc -zv 192.168..x.x 2222-
SSH no está ejecutándose:
Verificar desde la interfaz web de Home Assistant
- Ir a Configuración > Complementos > Terminal & SSH
- Verificar que esté “Iniciado”
Error 4: “Host key verification failed”
Causa: La clave del servidor ha cambiado (posible ataque man-in-the-middle o reinstalación).
Solución:
# Eliminar la clave antigua (solo si confías en el servidor)ssh-keygen -R 192.168..x.x
# O eliminar una entrada específica con puertossh-keygen -R "[192.168..x.x]:2222"
# Luego conectar de nuevo para aceptar la nueva clavessh tu_usuario@192.168.x.x -p 2222Mejores Prácticas de Seguridad
1. Usar Claves SSH en Lugar de Contraseñas
# Deshabilitar autenticación por contraseña en el servidor# En /etc/ssh/sshd_config:PasswordAuthentication noPubkeyAuthentication yes2. Cambiar el Puerto por Defecto
# En Home Assistant, el puerto se configura desde la interfaz web# Configuración > Complementos > Terminal & SSH > Configuración# Cambiar el puerto en la sección "server"
# Ejemplo de configuración YAML:server: tcp_forwarding: false port: 22223. Configurar Fail2Ban
Nota: Home Assistant OS no permite instalar fail2ban directamente La protección se maneja a nivel de router/firewall
Configurar en tu router:
- Limitar intentos de conexión SSH
- Usar VPN para acceso remoto
- Configurar alertas de seguridad
Alternativamente, usar Home Assistant con VPN: Instalar el add-on “WireGuard” o el de tu preferencia para acceso seguro. Yo uso mi VPN de Unifi y no tengo que instalar nada en Home Assistant
Usar SSH Agent para Gestionar Claves
# Iniciar SSH agent (Linux/Mac)eval "$(ssh-agent -s)"En Windows PowerShell
Get-Service -Name ssh-agent | Set-Service -StartupType ManualStart-Service ssh-agentAgregar tu clave privada (Linux)
ssh-add ~/.ssh/id_ed25519_homeassistantAgregar tu clave privada (Mac)
ssh-add --apple-use-keychain ~/.ssh/id_ed25519_homeassistantLa opción —apple-use-keychain almacena la frase de contraseña en tu cadena de claves cuando agregas una clave SSH al ssh-agent. Si eliges no agregar una frase de contraseña a tu clave, ejecuta el comando sin la opción —apple-use-keychain.
La opción —apple-use-keychain está en la versión estándar de Apple de ssh-add. En las versiones de macOS anteriores a Monterey (12.0), las marcas —apple-use-keychain y —apple-load-keychain usaban la sintaxis -K y -A, respectivamente.
Si no tienes instalada la versión estándar de Apple de ssh-add, recibirás un mensaje de error. Para más información, consulta Error: ssh-add: opción ilegal — apple-use-keychain.
Si te sigue pidiendo la frase de contraseña, es posible que tengas que agregar el comando al archivo ~/.zshrc (o el archivo ~/.bashrc de Bash).
En Windows
ssh-add "C:\Users\\tu_usuario\\.ssh\\id_ed25519_homeassistant"Prevención y Mantenimiento
Mantén OpenSSH Actualizado
# Ubuntu/Debiansudo apt update && sudo apt upgrade openssh-client openssh-server# CentOS/RHELsudo yum update opensshConfigura un MAC por Defecto
En /etc/ssh/ssh_config (configuración global):
# Añade esta línea para usar MACs compatibles por defectoMACs hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,umac-128-etm@openssh.comExplicación Técnica de los Algoritmos MAC
La configuración especifica tres algoritmos MAC seguros y modernos:
hmac-sha2-256-etm@openssh.com: Utiliza el algoritmo HMAC con SHA-256 y el modo “Encrypt-then-MAC” (ETM), que proporciona 256 bits de seguridad criptográfica hmac-sha2-512-etm@openssh.com: Similar al anterior pero con SHA-512, ofreciendo 512 bits de seguridad para mayor robustez umac-128-etm@openssh.com: Usa el algoritmo UMAC (Universal Message Authentication Code) con 128 bits, conocido por su eficiencia y velocidad El sufijo “etm@openssh.com” indica que estos algoritmos implementan el modo “Encrypt-then-MAC”, una práctica de seguridad donde primero se cifra el mensaje y luego se calcula el MAC sobre el texto cifrado. Este enfoque es considerado más seguro que el modo tradicional “MAC-then-Encrypt” porque previene ciertos tipos de ataques criptográficos.
Esta configuración es especialmente importante en el contexto de Home Assistant porque restringe las conexiones SSH a usar únicamente algoritmos MAC modernos y seguros, eliminando algoritmos más antiguos que podrían tener vulnerabilidades conocidas. Esto es crucial para mantener la seguridad del sistema domótico, ya que Home Assistant a menudo controla dispositivos críticos del hogar.
Conclusión
El error “Corrupted MAC on input” es generalmente un problema de incompatibilidad de algoritmos criptográficos entre el cliente y servidor SSH. La solución más efectiva es:
- Identificar los MACs compatibles usando
ssh -vvv - Especificar un MAC compatible con
-o MACs= - Configurar permanentemente en
~/.ssh/config
Con esta configuración, podrás conectarte sin problemas a Home Assistant y otros servidores que presenten este error.
Tip pro
Guarda tu configuración SSH en un repositorio Git privado para sincronizar entre múltiples máquinas.
Recursos Adicionales
¿Te ha funcionado esta solución? ¡Comparte tu experiencia y comenta en redes sociales!
Comentarios
Los comentarios son revisados antes de publicarse.
Aún no hay comentarios. ¡Sé el primero en comentar!