Siga este guia passo a passo para configurar a autenticação baseada em chave SSH no seu servidor Ubuntu. Faça login com segurança sem senha e, opcionalmente, desative completamente a autenticação por senha.
Siga cada passo cuidadosamente para configurar a autenticação baseada em chave SSH no seu servidor Ubuntu.
Execute o seguinte comando em sua máquina local para gerar um par de chaves RSA (as versões atuais do ssh-keygen usam 3072 bits por padrão — use -b 4096 para uma chave mais forte):
$ ssh-keygenQuando solicitado o caminho do arquivo, pressione Enter para aceitar o padrão ( ~/.ssh/id_rsa ). Opcionalmente, defina uma senha para uma camada extra de segurança.
Dois arquivos são criados: ~/.ssh/id_rsa (chave privada — mantenha-a em segredo) e ~/.ssh/id_rsa.pub (chave pública — esta deve ser armazenada no servidor).
Método 1 — ssh-copy-id (recomendado):
$ ssh-copy-id username@remote_hostDigite sua senha quando solicitado. A chave pública será adicionada ao arquivo ~/.ssh/authorized_keys no servidor.
Método 2 — via pipe SSH:
cat ~/.ssh/id_rsa.pub | ssh username@remote_host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"Método 3 — manualmente: Exiba sua chave pública com o cat ~/.ssh/id_rsa.pub , e então adicione a saída ao arquivo ~/.ssh/authorized_keys no servidor remoto.
Teste se a autenticação baseada em chave funciona conectando-se ao seu servidor:
$ ssh username@remote_hostSe você definiu uma senha na etapa 1, será solicitado que a insira. Caso contrário, o login será iniciado imediatamente, sem qualquer solicitação de senha.
Após confirmar que o login baseado em chave funciona, você pode desativar a autenticação por senha para proteger o servidor contra ataques de força bruta. Abra o arquivo de configuração do daemon SSH:
sudo nano /etc/ssh/sshd_configLocalize a linha PasswordAuthentication , remova o comentário se necessário e defina-a como no :
PasswordAuthentication noNas versões atuais do Ubuntu, sshd_config termina com uma linha ` Include /etc/ssh/sshd_config.d/*.conf , e um arquivo nesse diretório pode sobrescrever a configuração que você acabou de definir. Se a sua alteração não surtir efeito, verifique se existe a linha PasswordAuthentication yes em /etc/ssh/sshd_config.d/ e edite-a lá.
Salve o arquivo ( Ctrl+X , depois Y e, em seguida, Enter ) e reinicie o SSH:
$ sudo systemctl restart sshAbra um novo terminal e verifique se ainda consegue conectar-se antes de fechar a sessão atual.
Perguntas frequentes sobre como configurar a autenticação por chave SSH no Ubuntu.