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!