Hola Pablo,
De tu pregunta no me queda claro si en lo que estas interesado es:
- evitar ingresar la contrase~na cada vez que ingresas por SSH a los routers a traves de instalar tu clave publica en un router con LibreMesh/LibreRouterOS
- evitar que, cada vez que te conectas por SSH a un router con LibreMesh/LibreRouterOS, te pregunte cada vez sobre la autenticidad del host.
Instalar tu clave publica en un router con LibreMesh/LibreRouterOS
Esta operacion no esta aun implementada de manera geek-free
, por lo que hasta que esto suceda tendras que instalar tu clave publica manualmente.
Para hacer esto necesitas copiar tu clave publica SSH (usualmente ubicada en ~/.ssh/id_rsa.pub
) y agregarla al final del archivo /etc/dropbear/authorized_keys
accediendo al router con su contrase~na.
Verificando la autenticidad del router
En el caso de la segunda pregunta, cuando tu cliente SSH se conecta a un servidor SSH, verifica la identidad del host al que te estas conectando. Esto se hace para evitar que otra computadora se haga pasar por el router y permita conocer la comunicacion que vos quieras tener con tu router.
Para evitar esto, tu cliente ssh mantiene una lista de host y clave, donde almacena las claves que vos previamente hayas validado.
Si te conectas a un nuevo host, te solicitara que verifique la identidad, un mensaje como
The authenticity of host 'thisnode.info (2a01:bf9:ab:1233::10)' can't be established.
ECDSA key fingerprint is SHA256:Qf76ggue8m57sDa72aCgzcqvEtPBJVmf5tXRt0Gkeu8.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
cuando se te muestra este mensaje, deberias verificar que el codigo que sigue a SHA256
sea el mismo que esta en el router por algun otro medio.
En general esto es dificil de hacer ya que no se puede acceder al router por otro medio que no sea por ssh, ya que este no cuenta con una interfaz de usuario propia… por lo que en general confiamos la primera vez que nos conectamos y luego usamos el archivo que nuestro cliente va construyendo para asegurarnos que nunca cambia. La primera vez que te conectas puede ser una buena idea hacerlo por cable, para evitar que pueda haber algun intermediario (si esto es algo que te preocupa).
En las redes de LibreRouters (y con LibreMesh/LibreRouterOS) hay un caso que es importante contemplar: todos los routers comparten dos informaciones en la red: un nombre de router compartido (thisnode.info) y una direccion IPv4 compartido (tipicamente 10.x.0.1
, donde x puede variar dependiendo de tu red entre 0 y 255). Por lo que, cada vez que nos conectemos a traves de este numero compartido a un router distinto de la ultima vez que usamos este numero compartido, nuestro cliente SSH tratara de validar la clave que previamente estuvo asociado y fallara, ya que se refiere a distintas identidades. Este es un error esperado. Para evitar que esto suceda, podemos conectarnos:
- al nombre del router en vez del nombre compartido (casadepablo.thisnode.info en vez de thisnode.info), o
- al IPv4 del router en vez del del IPv4 compartido (
10.x.y.z
, en vez de 10.x.0.1
, donde y
y z
fueron asignados al router cuando fue inicializado).
- Usando para acceder el IPv6 autoasignado (que no varia dentro de la red), o el IPv6 local (que se autodescubre usando ping6 (que lo explicare en otro post).