Para acessar um server via SSH sem a necessidade de senha é necessário estabelecer uma relação de confiança entre as máquinas. No Linux, na maioria das vezes isto é feito com chaves criptografadas do tipo RSA (mas existem outros tipos). No exemplo a seguir, estabeleceremos uma chave de confiança entre as máquinas A e B, de modo que estando na máquina A, poderemos logar na máquina B sem senha.
O primeiro passo é, na máquina de origem, ou seja, na máquina A (segundo nosso exemplo), gerar a chave de confiança. Para gerar a chave abra um terminal na máquina A e digite o comando:
- ssh-keygen -t rsa -f ~/.ssh/id_rsa
O sistema irá fazer várias perguntas e você deverá apertar <enter> em todas.
No final deste processo sua chave será gerada no diretório /home/<nome do usuário>/.ssh/
De posse de sua chave será necessário enviá-la a qualquer servidor que deseje acessar (máquina B, segundo nosso exemplo), ou seja, estabelecer a relação de confiança.
Para enviar a chave de segurança, ainda na máquina A, digite o seguinte comando:
- ssh-copy-id <IP_da_maquina>
***O número do IP deverá ser substituido pelo da maquina desejada
Esclarecimento: O comando ssh-copy-id envia a chave publica (.pub) para o arquivo authorized_keys que fica dentro de /home/<nome do usuario>/.ssh/
Se tudo foi feito da maneira correta a relação de confiança foi estabelecida e não será mais necessário senha ao logar.