featured image

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

Juan Oliver Juan Oliver 8/16/2025, 5:51:23 PM 7 min de lectura

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

  1. Abre Home Assistant en tu navegador y accede con tu usuario administrador.
Login Home Assistant
Imagen 1: Login Home Assistant
  1. En la barra lateral, haz clic en tu usuario (abajo a la izquierda) y activa el “Modo avanzado” en tu perfil.
Barra lateral de Home assistant
Imagen 2: Barra lateral de Home assistant
Modo avanzado
Imagen 3: Modo avanzado
  1. Ve a Configuración > Complementos > Tienda de complementos.
Tienda de complementos
Imagen 4: Tienda de complementos
  1. Busca el add-on Terminal & SSH y haz clic en Instalar.
Complemento SSH
Imagen 5: Complemento SSH
Instalar complemento SSH
Imagen 6: Instalar complemento SSH

Paso 2: Configuración del Add-on

  1. Una vez instalado, ve a la pestaña Configuración del add-on:
Configurar complemento SSH
Imagen 7: Configurar complemento SSH
Configurar puerto 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.
  1. Guarda la configuración.
Datos configuración complemento SSH
Imagen 9: Datos configuración complemento SSH
Cambio puerto SSH
Imagen 10: Cambio puerto SSH

Paso 3: Iniciar el Servicio SSH

  1. Ve a la pestaña Información y haz clic en Iniciar para activar el servicio.
Complemento SSH iniciado
Imagen 11: Complemento SSH iniciado

Paso 4: Primera Conexión SSH

  1. Para acceder por SSH desde tu PC, usa el comando:
ssh tu_usuario@192.168.x.x -p 2222

Informació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_homeassistant

Paso 2: Copiar la Clave Pública al Servidor

# Mostrar la clave pública
cat ~/.ssh/id_ed25519_homeassistant.pub
# En Windows PowerShell
Get-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.x

Paso 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.com

Solució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 incorrect

Este 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

  1. Incompatibilidad de algoritmos MAC entre cliente y servidor
  2. Problemas de red que corrompen los paquetes
  3. Diferencias en versiones de OpenSSH
  4. 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 2222

Mac/Linux (Terminal):

telnet 192.168.x.x 2222

O usando Netcat (nc):

nc -zv 192.168.X.X 2222
Paso 2: Ejecutar SSH con Debug Verbose

Para obtener más información sobre el error:

ssh -vvv usuario@192.168.X.X -p 2222

Busca 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.com
debug2: MACs stoc: umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com

Soluciones 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 2222

Si no funciona, prueba con hmac-sha2-512-etm

ssh -o MACs=hmac-sha2-512-etm@openssh.com tu_usuario@192.168.x.x -p 2222

O con umac-128-etm

ssh -o MACs=umac-128-etm@openssh.com tu_usuario@192.168.x.x -p 2222
Solución Permanente: Configuración SSH

Para evitar especificar el MAC en cada conexión, actualiza tu archivo ~/.ssh/config:

# Windows: C:Users	u_usuario.sshconfig
  # 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.com

Algoritmos MAC Compatibles con Home Assistant

Home Assistant OS suele soportar estos algoritmos MAC:

  • hmac-sha2-256-etm@openssh.comRecomendado
  • hmac-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 existe
mkdir -p ~/.ssh
chmod 700 ~/.ssh
2. 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/null
3. Conectarse
ssh homeassistant

Configuración Avanzada para Múltiples Servidores

Si trabajas con varios servidores que tienen el mismo problema, puedes usar una configuración global:


  # En ~/.ssh/config
  Host *
    MACs hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,umac-128-etm@openssh.com

Configuraciones 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_homeassistant

Error 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 servidor
ssh -v tu_usuario@192.168.x.x -p 2222

# Verificar que la clave esté en authorized_keys del servidor
ssh tu_usuario@192.168.x.x -p 2222 "cat ~/.ssh/authorized_keys"

# Agregar clave pública manualmente al servidor
echo "tu_clave_publica_completa" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

Error 3: “Connection timed out”

Posibles causas y soluciones:

  1. Puerto incorrecto:

    # Verificar qué puertos están abiertos
    nmap -p 22,2222,22222 192.168.x.x
    
    # En Windows PowerShell
    Test-NetConnection -ComputerName 192.168..x.x -Port 2222
  2. Firewall bloqueando:

    # Verificar conexión básica
    telnet 192.168..x.x 2222
    
    # O usar nc (netcat)
    nc -zv 192.168..x.x 2222
  3. SSH no está ejecutándose:

    Verificar desde la interfaz web de Home Assistant

    • Ir a Configuración > Complementos > Terminal & SSH
    • Verificar que esté “Iniciado”
Play Video: Configurar SSH en Home Assistant

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 puerto
  ssh-keygen -R "[192.168..x.x]:2222"

  # Luego conectar de nuevo para aceptar la nueva clave
  ssh tu_usuario@192.168.x.x -p 2222

Mejores 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 no
PubkeyAuthentication yes

2. 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: 2222

3. 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 Manual
Start-Service ssh-agent

Agregar tu clave privada (Linux)

ssh-add ~/.ssh/id_ed25519_homeassistant

Agregar tu clave privada (Mac)

ssh-add --apple-use-keychain ~/.ssh/id_ed25519_homeassistant

La 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/Debian
sudo apt update && sudo apt upgrade openssh-client openssh-server
# CentOS/RHEL
sudo yum update openssh

Configura un MAC por Defecto

En /etc/ssh/ssh_config (configuración global):

# Añade esta línea para usar MACs compatibles por defecto
MACs hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,umac-128-etm@openssh.com

Explicació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:

  1. Identificar los MACs compatibles usando ssh -vvv
  2. Especificar un MAC compatible con -o MACs=
  3. 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!

Compartir:
Siguiente
Asegurar el Wi-Fi en el hogar para el trabajo desde casa