Logando num servidor ssh sem senha

Eu estava tentando baixar os backups do nosso servidor para minha máquina e esbarrei num detalhe simples: Toda vez que eu iniciava a transferência via rsync tinha que pôr novamente a senha. Isso não é necessário. Para logar no servidor ssh sem uso de senha, mas mantendo a segurança, utiliza-se uma chave pública (no servidor) e uma privada (na minha máquina).

Primeiro devemos criar as chaves de acesso entre os servidores:

ssh-keygen -b 1024 -t rsa

Este comando diz para criar uma chave de 1024 bits usando o algoritmo rsa.

Feito isso aparecerá no seu terminal:

Generating public/private rsa key pair.
Enter file in which to save the key (/home/felipe/.ssh/id_rsa):

Você deve especificar o nome do arquivo, o melhor é não alterar, portanto apenas pressione ENTER.

Enter passphrase (empty for no passphrase):
Enter same passphrase again:

Agora foi pedido uma ‘passphrase’ que é uma “frase-senha”. Como queremos logar sem senha, não coloque nada e pressione ENTER 2 vezes.

The key fingerprint is:
00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00

Aparecendo isso, quer dizer que tudo ocorreu corretamente. Esta fingerprint será diferente em cada caso. Agora temos que copiar nossa chave pública para o servidor. Faça isso com o seguinte comando:

usuario@local:~$ scp /home/usuario/.ssh/id_rsa.pub usuario@123.123.123.123:/home/usuario/.ssh/

Não esqueça deve ser a chave PÚBLICA. A privada nunca sai de sua máquina.

Logando-se no servidor você perceberá que ele ainda pede senha, isso acontece por que você deve renomear o arquivo enviado para authorized_/_keys:

cat id_rsa.pub >> authorized_keys

O comando acima adiciona a chave pública ao seu arquivo de chaves autorizadas a logar no servidor

Agora logue-se novamente que tudo irá funcionar!