Configurar o login SSH sem senha para vários servidores remotos usando o script
- 1682
- 174
- Ms. Travis Schumm
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 OpenSshNeste 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-keygenGerar 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.barExecutar 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_rsaInicie 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.
- « 9 comandos úteis para obter informações da CPU no Linux
- Como alternar (su) para outra conta de usuário sem senha »