Login SSH sem senha

Esta dica é interessante para realizar tarefas em computadores remotos via SSH, backups por exemplo.

Como já sabemos é possível automatizar praticamente qualquer procedimento através de scripts, inclusive quando estamos lidando com máquinas remotas. Nos casos em que a conexão entre as máquinas deve ocorrer por SSH temos um pequeno detalhe a contornar, o login, que exige interação do usuário.

A solução mais simples é gerar uma chave SSH na máquina cliente e enviar a chave pública para a máquina remota, isso permite que a autenticação SSH ocorra automaticamente, sem interação do usuário.

O procedimento é muito simples, na máquina cliente, logue-se com o usuário que vai se conectar à máquina remota e gere a chave ssh.

# ssh-keygen -t rsa

Serão solicitadas frases de segurança, apenas pressione ENTER, não vamos informar frases de segurança.

As chaves foram geradas no diretório: /home/USUARIO/.ssh/. A chave privada está no arquivo id_rsa e a chave pública em id_rsa.pub .

Agora temos que copiar a chave pública para a máquina remota e adicionar no arquivo de autorização. Podemos fazer a cópia via ssh:

#scp ~/.ssh/id_rsa.pub root@MAQ_REMOTA:/root/

Uma vez copiada para a máquina remota devemos adicionar a chave ao arquivo .ssh/authorized_keys do usuário remoto.

#cat /root/id_rsa.pub >> /root/.ssh/authorized_keys

Com isso o login sem senha já deve funcionar. Basta conectar para testar.

#ssh -l root MAQ_REMOTA

A conexão deve ocorrer sem pedir senha.

A chave deve ser copiada para o diretório do usuário remoto o qual vamos nos conectar. Por exemplo, se o usuário local “joao” vai se conectar como “root” na máquina remota, então deve-se gerar a chave SSH local com o usuário “joao” e copiar para o diretório do usuário “root” na máquina remota.

Este esquema é muito simples e permite realizar procedimentos remotos automatizados com segurança.

Deixe um comentário