Como usar SSH com chave remota (sem pedir senha)

Imagine que você tem dois servidores. É possível acessá-los entre si usando SSH, sem ter que digitar a senha sempre. Para isso, basta criar uma chave RSA KEY no servidor 1, e copiá-la para o servidor 2.  Desta forma, o servidor 2 poderá acessar o servidor 1 livremente por SSH sem ter que digitar a senha sempre. Você também pode ler este artigo sobre como acessar um servidor linux através de SSH.

Primeiramente, acesse o SERVIDOR1 por SSH. Em seguida, digite o comando ssh-keygen conforme demonstraremos, sem digitar senha.

# cd
# ssh-keygen -t rsa

Resultado esperado para este comando:

Generating public/private rsa key pair.
Enter file in which to save the key (/home/usuario/.ssh/id_rsa): 
Created directory '/home/usuario/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/usuario/.ssh/id_rsa.
Your public key has been saved in /home/usuario/.ssh/id_rsa.pub.
The key fingerprint is:
3e:4f:xx:79:xx:9f:96:xx:3b:ad:xx:58:37:bc:37:e4 usuario@S1

O comando ssh-keygen gerou os arquivos id_rsa.pub (chave publica) e id_rsa (chave privada). A chave privada não pode ser copiada para outro servidor.

ssh sem digitar senha rsa chave

Corrija a permissão de acesso da chave privada com o comando chmod 600

# chmod -v 600 .ssh/id_rsa

Em seguida, acesse SERVIDOR2 por SSH e crie uma pasta ~/.ssh . Em alguns casos esta pasta já existirá, não há problemas

# cd 
# mkdir ~/.ssh

Dentro da pasta .ssh crie o arquivo authorized_keys. Esse arquivo mantem as chaves publicas autorizadas a fazerem o login.

# touch .ssh/authorized_keys

Volte para o SERVIDOR1, e exiba na tela a chave rsa que foi gerada.

# cat .ssh/id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAuo0vDDu7vMhc7hum1bgNool+IMfPrt77dZOVAY9fIm1jm8oL57w
XXMUe/lcJox+f3YkvGxZMLRUbvM43PVpFPdsTyPsqaIcv+t4rKHugnk/Y  usuario@servidor

Copie essa chave para o arquivo authorized_keys do SERVIDOR2 utilizando o seu editor de texto favorito.

Por ultimo, corrija a permissão de acesso do arquivo authorized_keys com o comando chmod 600.

# chmod -v 600 .ssh/authorized_keys

Pronto, seu acesso ssh sem senha está configurado e você já pode acessar o SERVIDOR1 por SSH sem precisar digitar a senha.

root@servidor:~# ssh 177.10.20.30
The authenticity of host '[servidor1]:64413 ([177.XX.XX.101]:22)' can't be established.
RSA key fingerprint is SHA256:UbCvey971joqLCsFUc3WBEyTNVEFd2/1Irh6RWMo7xM.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[servidor1]:22' (RSA) to the list of known hosts.
Last login: Mon Jun 20 13:01:19 2016 from 186.242.115.87

Este artigo foi útil?

Obrigado pela resposta!
Gustavo Carvalho

Gustavo Carvalho

Analista de sistemas, formado pela PUC-Rio. Programador, gestor de redes e diretor da empresa Homehost. Pai do Bóris, seu pet de estimação. Gosta de rock'n'roll, cerveja artesanal e de escrever sobre assuntos técnicos.

Contato: gustavo.blog@homehost.com.br

Ganhe 30% OFF

Indique seu nome e e-mail,e ganhe um cupom de desconto de 30% para sempre na Homehost!