in

Dica de como configurar login SSH sem senha

Em 2020, aprenda a configurar login SSH sem senha para vários servidores remotos usando script

Em 2020, aprenda a configurar login SSH sem senha para vários servidores, de maneira simples, rápida e mais importante, de maneira altamente segura.

A autenticação baseada em chave SSH (também conhecida como autenticação de chave pública) permite a 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 SSH sem senha , sem falar na segurança, é que ele permite a automação de vários tipos de processos entre servidores.

Crie uma nova chave SSH no Linux

O login sem senha necessidade primeiramente, a necessidade de 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- comando keygen da seguinte forma:

ssh-keygen

ssh-keygen

Agora iremos alterar a permissão da chave privada

chmod 0600 /home/afrare/.ssh/id_rsa.pub

Criar um script de shell para vários logins remotos

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

vim /data/ssh-copy.sh

Copie e cole o seguinte código no arquivo (substitua as seguintes variáveis) de acordo USER_NAME- o nome de usuário ao qual 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
USER_NAME=”afrare”
HOST_FILE=”/data/hosts”
ERROR_FILE=”/tmp/ssh-copy_error.txt”
PUBLIC_KEY_FILE=”$1″
if [ ! -f $PUBLIC_KEY_FILE ]; then
echo “Arquivo ‘$PUBLIC_KEY_FILE’ nao encontrado!”
exit 1
fi
if [ ! -f $HOST_FILE ]; then
echo “Arquivo ‘$HOST_FILE’ nao encontrado!”
exit 2
fi
for IP in `cat $HOST_FILE`; do
ssh-copy-id -i $PUBLIC_KEY_FILE [email protected]$IP 2>$ERROR_FILE
RESULT=$?
if [ $RESULT -eq 0 ]; then
echo “”
echo “Chave publica copiada para o IP -> $IP”
echo “”
else
echo “$(cat $ERROR_FILE)”
echo
exit 3
fi
echo “”
done

Salve o arquivo e feche-o.

Em seguida, torne o script executável com o comando chmod, conforme mostrado.

chmod +x ssh-copy.sh

Vamos criar o arquivo /root/hosts

[[email protected] afrare]# echo 192.168.2.128 > /data/hosts
[[email protected] afrare]# chmod 664 /data/hosts
[[email protected] afrare]# cat /data/hosts
192.168.2.128

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

./ssh-copy.sh /home/afrare/.ssh/id_rsa.pub.pub

ssh-pub-copia

Execute o 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 ele da seguinte maneira:

eval “$(ssh-agent -s)”
ssh-add ~ /.ssh/id_rsa.pub

Login sem senha no servidor Linux remoto

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

Login sem senha SSH

Isso é tudo que tínhamos para você! Se você tiver alguma contribuição a fazer especialmente para melhorar o script de shell,

Abaixo disponibilizamos alguns artigos sobre o assunto.

22 dicas utilizando o SSH

Como acessar aplicação gráfica com o SSH

Dicas de como usar o comando RSync

 

Escrito por Adriano Frare

Escritor do livro Aplicações Avançadas em LINUX com mais de 20 anos trabalhando com LINUX e UNIX.