Configurar o login SSH sem senha para vários servidores remotos usando o script

Configurar o login SSH sem senha para vários servidores remotos usando o script

A autenticação baseada em chaves SSH (também conhecida como autenticação de chave pública) permite autenticação sem senha e é uma solução mais segura e muito melhor do que a autenticação por senha. Uma grande vantagem do login sem senha SSH, muito menos a segurança é que ele permite a automação de vários tipos de processos entre servidores.

Leitura relacionada: Como proteger e endurecer o servidor OpenSsh

Neste artigo, demonstraremos como criar um par de chaves ssh e copiar a chave pública para vários hosts remotos de Linux de uma só vez, com um script de shell.

Crie uma nova chave SSH no Linux

Primeiro, gerar o par de chaves ssh (a chave privada/identidade que um cliente SSH usa para se autenticar ao fazer login em um servidor SSH remoto e a chave pública armazenada como uma chave autorizada em um sistema remoto executando um servidor SSH) usando o ssh-keygen Comando o seguinte:

# ssh-keygen 
Gerar a chave SSH no Linux

Crie um script de shell para logins remotos Mulitple

Em seguida, crie um script de shell que ajudará a copiar uma chave pública para vários hosts Linux remotos.

# vim ~///.BIN/SSH-COPY.sh 

Copie e cole o seguinte código no arquivo (substitua as seguintes variáveis ​​de acordo NOME DE USUÁRIO - o nome de usuário para se conectar, Host_file - um arquivo que contém a lista de nomes de host ou endereços IP e Error_file - um arquivo para armazenar quaisquer erros de comando ssh).

#!/BIN/BASH NOME DE USUÁRIO= "root" Host_file= "/root/hosts" Error_file= "/tmp/ssh-copy_error.txt "public_key_file =" $ 1 "se [ ! -f $ public_key_file]; então echo "arquivo '$ public_key_file' não encontrado!"Saia 1 fi se [ ! -f $ host_file]; então echo "arquivo '$ host_file' não encontrado!"Saia 2 fi para IP em 'Cat $ host_file'; do ssh-copy-id -i $ public_key_file [email protegido] $ ip 2> $ error_file resultado = $? se [$ resultado -eq 0]; Então eco "" eco "chave pública copiou com sucesso para $ ip" echo "" else echo "$ (gat $ error_file)" eco saindo 3 fi echo "" feito 

Salve o arquivo e feche-o.

Em seguida, faça o script executável com o chmod comando como mostrado.

# chmod +x ssh-cópia.sh 

Agora execute o ssh-cópia.sh script e especifique seu arquivo de chave pública como o primeiro argumento, como mostrado na captura de tela:

# ./ssh-cópia.sh /root /.SSH/Prod-RSA.bar 
Executar script de cópia ssh

Em seguida, use ssh-agent Para gerenciar suas chaves, que mantém sua chave privada descriptografada na memória e a usa para autenticar logins. Depois de iniciar o ssh-agent, Adicione sua chave privada a seguir:

# avaliar "$ (ssh-agent -s)" # ssh-add ~/.ssh/prod_rsa 
Inicie o agente SSH

Faça login no servidor Linux remoto sem senha

Agora você pode fazer login em qualquer um dos seus hosts remotos sem fornecer uma senha para a autenticação do usuário SSH. Dessa forma, você pode automatizar processos de servidor cruzado.

# ssh [email protegido] 
SSH Login sem senha

Isso é tudo o que tivemos para você! Se você tiver alguma contribuição (s) para fazer particularmente para melhorar o script do shell, informe -nos através do formulário de feedback abaixo.