Hoje precisei configurar um servidor novo em uma VPS que estou testando. E para agilizar o processo de login via SSH, precisei adicionar uma chave pública do meu PC neste servidor, no arquivo de authorized_keys.

Pra não precisar conectar manualmente no servidor, criar um arquivo authorized_keys, abrir e copiar o conteúdo da chave de maneira como os homens das cavernas faziam, utilizei o seguinte comando na minha máquina, que ficou assim:

cat ~/.ssh/id_rsa.pub | ssh user@ip_do_host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

Para rodar o comando, você só precisa trocar o nome de usuário e o ip do host onde deseja se conectar. Dessa maneira, as próximas conexões já serão autenticadas automaticamente.

Existe uma chance que o arquivo recém criado authorized_keys e o diretório .ssh, tenham as permissões de acesso diferentes do necessário, e os acessos continuem pedindo senha. Pra corrigir, basta conectar mais uma vez ao servidor remoto, e rodar o seguinte comando:

chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys

E é isso. Espero que seja útil.

Fonte: askubuntu.com