Como obter login ssh sem senha entre dois nós em um cluster de servidores

Como obter login ssh sem senha entre dois nós em um cluster de servidores

Encontrei um problema sobre como obter login sem senha entre dois nós em um cluster de servidores. Agora tenho um cluster de servidores composto por 10 nós com os seguintes endereços IP:

192.168.0.1 # node1
192.168.0.2 # node2
...
192.168.0.10 # node10

Meu nome de usuário nesses três nós é todos xyze o sistema nesses nós é todos Ubuntu14.04.

Esta parece ser uma pergunta canônica e deveria ter sido respondida em muitos lugares, mas minha pesquisa no Google só me indica a solução para dois nós. Por exemplo, passe a chave pública gerada node1para o authorized_keysarquivo node2, ..., node10para permitir login sem senha node1nos demais nós. Mas como escalar esse método para quaisquer dois nós em um cluster de servidores? devemos gerar manualmente a chave pública em cada nó e copiar a chave pública de cada nó para os demais nós? Existe um método geral e conveniente?

Responder1

Se você tiver uma configuração de cluster, provavelmente terá um sistema de arquivos compartilhado. Nesse caso, você pode simplesmente adicionar a chave SSH ao próprio servidor. Se conectar-se a outro servidor encontrará sua própria chave na lista de chaves autorizadas. Então você pode se conectar de qualquer servidor a qualquer servidor.

Caso eles tenham sistemas de arquivos diferentes, você precisará fazer isso manualmente. Você pode criar uma nova chave SSH para o xyzusuário e ssh-copy-idpara cada um dos outros servidores. Isso escala como N² com o número de servidores, isso não é legal.

Você pode gerar uma chave SSH e copiá-la para todas as máquinas para /home/xyz/.ssh/id_rsae id_rsa.pub. Em seguida, registre esta chave em toda a máquina. Agora você pode fazer login de qualquer servidor em qualquer outro servidor usando a mesma chave SSH.

Para implantar isso, eu escreveria um script rápido que usa scpum for-loop para iterar pelos servidores.

informação relacionada