Antes de desabilitar a autenticação por senha, você precisa configurar a autenticação por chave pública e garantir que esteja sendo usada. Se você ainda não fez isso, pode gerar um par de chaves usando ssh-keygen
.
O par de chaves consiste em uma chave privada e uma chave pública com .pub
no final do nome do arquivo. A chave pública consiste em uma única linha com um tipo, a chave pública e um comentário. Acho útil editar o comentário para incluir a data em que o par de chaves foi gerado, já que isso não está incluído no comentário padrão.
Você precisa colocar essa linha em .ssh/authorized_keys
na conta na qual você faz login.
Quando você se conectar ao servidor usando ssh no futuro, não será solicitada uma senha para efetuar login. Você poderá ser solicitado a inserir uma senha para a chave, se tiver inserido uma senha ao criá-la. Se você não quiser ser perguntado pela senha toda vez que fizer login, use ssh-agent
.
No servidor, você pode editar /etc/ssh/sshd_config
e encontrar a linha PasswordAuthentication
:
PasswordAuthentication no
Se não houver nenhuma linha PasswordAuthentication
no arquivo, você precisará adicionar uma. Pode haver um comentário informando qual é o valor padrão. Você pode remover o #
nessa linha para deixar de ser um comentário ou adicionar uma PasswordAuthentication
após o comentário.
Para que a mudança entre em vigor,
service ssh reload
como root no servidor. Este comando está no Ubuntu, pode diferir ligeiramente entre distribuições. Eu recomendo rodar o comando em uma sessão screen
tal que o reload
seja concluído mesmo se você perder a conectividade com o servidor ao executá-lo.
Depois de ter feito a mudança, abra uma nova janela para iniciar outra conexão ssh para verificar se a conectividade funciona conforme o esperado. Esta etapa é importante, pois o shell que você deixou em aberto oferece uma última chance de corrigir o problema, caso você acidentalmente não consiga acessar um shell raiz no servidor.