Las claves del cliente y del servidor viven en mundos diferentes: la clave del cliente es verificada por el servidor, la clave del servidor es verificada por el cliente. Su problema actual es tener muchos servidores y un cliente, y compartir claves entre servidores. Lo que haga con el otro mundo (la clave del cliente y el archivo authorized_keys
) es irrelevante; no tiene ningún impacto en esa pregunta.
Estoy tentado de decir que el mayor problema con esta clave compartida no es que la clave se comparta; es por qué que quiere compartir la clave. Desea compartir la clave porque no sabe a cuál de los servidores se va a conectar. Y ese es el problema: estás haciendo un SSH a través de un equilibrador de carga que te enviará a uno de los servidores, pero sin control sobre cuál de ellos terminas. Esto no es lo que quieres. Desea poder hacer un SSH a todos los servidores, no solo uno elegido al azar. No puede tener eso si equilibra la carga de las conexiones SSH.
Si desea (como creo) poder controlar todas las máquinas de su clúster individualmente, entonces debe tener una forma de conectarse a cualquiera de ellas específicamente, y posiblemente (probablemente) varias al mismo tiempo. Esto significa usar sus direcciones IP específicas no compartidas o, como sugiere @Iserni, puertos distintos (si debe SSH "desde el exterior" y tiene solo una dirección IP disponible). En ese punto, el intercambio de claves es menos importante. Es posible que aún desee compartir la clave por otras razones (por ejemplo, crear todas las máquinas a partir de una imagen ya configurada o crear automáticamente un .ssh/known_hosts
ya poblado para su cliente). Compartir claves entre servidores implica mover la clave privada, lo cual es, en general, una idea no muy buena; pero las máquinas de un grupo probablemente estén muy juntas y uno puede asumir (o al menos esperar) que pueden hablar juntos sin ser espiados por personas externas.
También es posible que desee investigar las herramientas vinculadas desde esa respuesta .