Estableciendo confianza SSH entre Docker de Home Assistant y el Host
20 diciembre, 2024
Este tutorial está diseñado para mostrar cómo configurar sensores, leer datos, y realizar diversas tareas mediante la confianza SSH entre el contenedor Docker de Home Assistant y el host en el que está instalado. Sin esta configuración, Home Assistant no puede acceder a los datos del sistema host y solo tiene visibilidad de lo que está dentro de su propio contenedor Docker. Al establecer esta confianza SSH, Home Assistant podrá interactuar con el sistema host, permitiéndonos aprovechar al máximo su capacidad de monitoreo y control.
Sería conseguir lo que hace nuestro compañero en este otro tutorial pero teniendo Homeassistant en Docker.
Para evitar esta limitación lo que se hace es generar una confianza SSH entre el docker de Homeassistant y el host, de tal manera que pueda acceder al host directamente.
Muy importante: Cada vez que actualices el contenedor de Homeassistant con una nueva versión el mismo se destruye, con lo que hay que hacer esta operación de nuevo. Para evitar esto se puede hacer persistente, mirar la última parte de este tutorial.
Generación de las claves
Primero vamos a generar las claves SSH en el contenedor de docker, entramos en la consola de Portainer y dentro de los contenedores pinchamos en este botón para acceder a la consola docker de Homeassistant:
Después le damos a Connect:
Veremos la consola del docker de Homeassistant:
Para generar las claves escribimos esto en la consola:
1
ssh-keygen
Damos intro a todas las opciones.
Nos genera una key SSH y la almacena en /root/.ssh/
Ahora vamos a copiar esa clave en el host donde esta instalado docker, escribimos lo siguiente en la consola, cambiando el user y la ip por lo que useis en vuestro host:
1
ssh-copy-id user@ip
Si todo ha salido bien, os saldrá una pantalla como esta:
Esta operación podeis hacerla con el resto de equipos de la red si quereis acceder por SSH a otros, y de igual manera poner sensores en Homeassistant de una Raspberry por ejemplo que tengais en casa.
Para ver que funciona bien escribir en la consola:
1
ssh user@ip
Accederéis al SSH del host:
Borrado de claves
Si necesitáis borrar las claves se hacen con este comando:
1
ssh-keygen-Rip
Donde ip seria la ip de donde quieres borrar las claves de tu contenedor de docker.
Para borrar todas las claves se usa este comando:
1
rm~/.ssh/known_hosts
Persistencia Claves SSH
Como sabéis, al crear los containers de cero o actualizarlos , se destruye todo la partición del container y se crea de nuevo por lo que las claves generadas desaparecen y hay que reproducir los pasos anteriores nuevamente.
Si queremos dejar las claves de formas persistentes y no preocuparnos de volver a crearlas cada vez que actualicemos la versión de home assistant podemos hacer lo siguiente:
Como vimos en los pasos anteriores al generar las claves ssh en el directorio que indicamos (normalmente para home assistant en /user/.ssh/) se nos generan tres archivos: id_rsa, id_rsa.pub y known_hosts.
El primer paso a seguir es entrar via portainer a la consola del container , apuntar la id del container y asegurarnos de que la ruta hacia esos tres archivos corresponde con la que tenemos apuntada (la carpeta .ssh/ estará oculta, para verla necesitamos usar el comando ls -all).
El siguiente paso es conectar via ssh al host donde tenemos el container y vamos a copiar los tres archivos generados dentro del container al directorio que queramos dentro de nuestro host:
A la hora de ejecutar este comando hay que tener en cuenta que la ruta dentro del host debe de existir , de lo contrario tendremos un error. Esta operación hay que repetirla para cada archivo.
Finalmente ahora que tenemos en el host una localización de nuestros archivos lo único que hay que hacer es añadir a nuestra orden de ejecución para crear el container ya sea vía consola o vía compose el volumen donde tenemos las claves.
1
-v/ruta/claves:/user
Y con estos sencillos pasos nos olvidaremos de tener que repetir el proceso de crear las claves ssh cada vez que borremos o actualicemos el container de home assistant.
Escrito por Noel
Buenas, me llamo Noel, soy un divulgador y amante del software libre y Gnu Linux.
Usuario inquieto por ver las novedades y dar a conocer a todos las grandes ventajas del software libre y Gnu Linux.
Suscribirse
0 Comentarios
Los más recientes
Los más antiguosMás votados
Feedbacks en línea
Ver todos los comentarios
LiGNUx trabaja sobre una licencia de Creative Commons Reconocimiento 4.0 Internacional.