Como desabilitar a autenticação de senha para o SSH

2

Gostaria de desativar a autenticação de senha para o SSH (para todos os usuários) no Linux. Eu estou definindo o PasswordAuthentication para não é o arquivo sshd_config mas então eu não vou mais logar usando minha chave privada.

p.s. Estou especificando meu arquivo de chave privada ao tentar efetuar login.

    
por H.Z. 28.04.2018 / 18:30

3 respostas

3

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.

    
por 28.04.2018 / 19:09
0

No servidor, desabilite a autenticação por senha SSH, e também desabilite a possibilidade de logar como root.

Observação Certifique-se de ter um usuário no servidor com uma senha antes de fazer isso ou será bloqueado do servidor.

$ vim /etc/ssh/sshd_config

Edite / adicione as seguintes linhas

  • PermitRootLogin no
  • SenhaAuthentication no
  • UsePAM no
  • UseLogin no

Execute o comando

$ service ssh restart

Crie uma nova chave SSH no cliente (exemplo)

cd ~/.ssh    
ssh-keygen -t rsa -b 4096 -C server1 -f server1

Copie a chave SSH para o servidor

ssh-copy-id -i server1.pub username@server-ip

Use a nova chave para se conectar ao servidor

vim ~/.ssh/config

Adicione as seguintes linhas

Host ip-of-server
  User yourUsername
  IdentifyFile /home/yourUsername/.ssh/server1

Conecte-se ao servidor

ssh server-ip
    
por 29.04.2018 / 14:45
0

Verifique a permissão de arquivos e pastas no servidor em que você deseja fazer o login. Se a permissão for muito fraca, não funciona.

chmod 700 ~/.ssh
chmod 600 ~/.ssh/
    
por 29.04.2018 / 21:26