Encontré un problema sobre cómo lograr un inicio de sesión sin contraseña entre dos nodos cualesquiera en un clúster de servidores. Ahora tengo un clúster de servidores que consta de 10 nodos con las siguientes direcciones IP:
192.168.0.1 # node1
192.168.0.2 # node2
...
192.168.0.10 # node10
Mi nombre de usuario en estos tres nodos es all xyz
, y el sistema en estos nodos es all Ubuntu14.04
.
Esta parece ser una pregunta canónica y debería haberse respondido en muchos lugares, pero mi búsqueda en Google solo me dice la solución para dos nodos. Por ejemplo, pase la clave pública generada node1
al authorized_keys
archivo node2, ..., node10
para permitir el inicio de sesión sin contraseña desde node1
el resto de nodos. Pero, ¿cómo escalar este método a dos nodos cualesquiera en un clúster de servidores? ¿Deberíamos generar manualmente la clave pública en cada nodo y copiar la clave pública de cada nodo al resto de los nodos? ¿Existe un método general y conveniente?
Respuesta1
Si tiene una configuración de clúster, probablemente tenga un sistema de archivos compartido. Si es así, puede simplemente agregar la clave SSH al servidor. Si se conecta a otro servidor, encontrará su propia clave en la lista de claves autorizadas. Luego podrá conectarse desde cualquier servidor a cualquier servidor.
En caso de que tengan diferentes sistemas de archivos, deberá hacerlo manualmente. O crea una nueva clave SSH para el xyz
usuario y ssh-copy-id
para cada uno de los demás servidores. Esto escala como N² con la cantidad de servidores, eso no está bien.
Puede generar una clave SSH y copiarla en todas las máquinas a /home/xyz/.ssh/id_rsa
y id_rsa.pub
. Luego registre esta clave con toda la máquina. Ahora puede iniciar sesión desde cualquier servidor en cualquier otro servidor utilizando la misma clave SSH.
Para implementar esto, escribiría un script rápido que use scp
un for
bucle para iterar a través de los servidores.