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

2

Encontrei um problema sobre como obter login sem senha entre dois nós em um cluster de servidor. Agora eu 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 é todo xyz e o sistema nesses nós é Ubuntu14.04 .

Esta parece ser uma questão canônica e deveria ter sido respondida em muitos lugares, mas minha pesquisa usando o Google apenas me diz a solução para dois nós. Por exemplo, passe a chave pública gerada em node1 para o arquivo authorized_keys em node2, ..., node10 para permitir login sem senha de node1 para os nós restantes. Mas como escalar esse método para quaisquer dois nós em um cluster de servidor? devemos manualmente gerar chave pública em cada nó e copiar a chave pública de cada nó para os nós restantes? Existe um método geral e conveniente?

    
por ROBOT AI 01.10.2016 / 13:16

1 resposta

1

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

No caso de terem sistemas de arquivos diferentes, você precisa fazer isso manualmente. Você pode criar uma nova chave SSH para o usuário xyz e ssh-copy-id para 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_rsa e id_rsa.pub . Então registre esta chave com toda a máquina. Agora você pode efetuar login de qualquer servidor para qualquer outro servidor usando a mesma chave SSH.

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

    
por 01.10.2016 / 13:44