Poupe até 53% em Servidores VPS, escolha agora. Oferta limitada.

Checklist para configurar autenticação SSH por chave no Ubuntu 22.04

10 min de leitura  ·  Guia técnico

Autenticação SSH por chave é um método de acesso seguro que substitui senhas por criptografia assimétrica no Ubuntu 22.04. Para configurar corretamente, siga estes passos:

  1. Gerar par de chaves SSH com ssh-keygen
  2. Copiar chave pública para o servidor remoto
  3. Configurar permissões corretas nos arquivos
  4. Testar conexão sem senha
  5. Desabilitar autenticação por senha no SSH
  6. Verificar logs de segurança

Pré-requisitos

  • Servidor Ubuntu 22.04 LTS com acesso root ou sudo
  • Cliente SSH instalado (OpenSSH 8.9 ou superior)
  • Acesso inicial por senha ou console do provedor
  • Conhecimento básico de terminal Linux
  • Backup da configuração SSH atual

Gerando chaves SSH no Ubuntu 22.04

A geração de chaves SSH é o primeiro passo para implementar autenticação segura. O algoritmo RSA com 4096 bits oferece segurança robusta contra ataques modernos.

Execute o comando para gerar o par de chaves:

ssh-keygen -t rsa -b 4096 -C "[email protected]"

O sistema solicitará informações durante o processo:

Generating public/private rsa key pair.
Enter file in which to save the key (/home/usuario/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/usuario/.ssh/id_rsa
Your public key has been saved in /home/usuario/.ssh/id_rsa.pub

Atenção: Defina uma passphrase forte para proteger a chave privada. Deixar em branco reduz a segurança significativamente.

Verifique se as chaves foram criadas corretamente:

ls -la ~/.ssh/

Output esperado:

total 16
drwx------ 2 usuario usuario 4096 dez 15 10:30 .
drwxr-xr-x 3 usuario usuario 4096 dez 15 10:25 ..
-rw------- 1 usuario usuario 3243 dez 15 10:30 id_rsa
-rw-r--r-- 1 usuario usuario  736 dez 15 10:30 id_rsa.pub

Copiando chave pública para o servidor

A transferência da chave pública pode ser feita através do comando ssh-copy-id ou manualmente. O método automatizado é mais seguro e eficiente.

Use ssh-copy-id para copiar automaticamente:

ssh-copy-id usuario@ip-do-servidor

Se ssh-copy-id não estiver disponível, copie manualmente:

cat ~/.ssh/id_rsa.pub | ssh usuario@ip-do-servidor "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

Alternativamente, copie o conteúdo da chave pública:

cat ~/.ssh/id_rsa.pub

No servidor remoto, adicione ao arquivo authorized_keys:

echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQ..." >> ~/.ssh/authorized_keys

Verifique se a chave foi adicionada corretamente:

cat ~/.ssh/authorized_keys

Configurando múltiplas chaves

Para gerenciar várias chaves SSH, cada uma deve ocupar uma linha separada no arquivo authorized_keys. Adicione comentários para identificação:

# Chave do laptop pessoal
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQ... usuario@laptop
# Chave do servidor de backup
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQ... backup@servidor

Configurando permissões de segurança

As permissões corretas dos arquivos SSH são fundamentais para o funcionamento seguro. O OpenSSH rejeita conexões se as permissões estiverem incorretas.

Configure as permissões do diretório .ssh:

chmod 700 ~/.ssh

Defina permissões do arquivo authorized_keys:

chmod 600 ~/.ssh/authorized_keys

Configure permissões da chave privada:

chmod 600 ~/.ssh/id_rsa

Verifique as permissões configuradas:

ls -la ~/.ssh/

Output esperado com permissões corretas:

drwx------ 2 usuario usuario 4096 dez 15 10:30 .ssh
-rw------- 1 usuario usuario  736 dez 15 10:30 authorized_keys
-rw------- 1 usuario usuario 3243 dez 15 10:30 id_rsa
-rw-r--r-- 1 usuario usuario  736 dez 15 10:30 id_rsa.pub

Verificando propriedade dos arquivos

Confirme se o usuário é proprietário dos arquivos SSH:

sudo chown -R $USER:$USER ~/.ssh

Para verificar a propriedade:

stat ~/.ssh/authorized_keys

Testando autenticação por chave SSH

O teste de conectividade SSH deve ser realizado antes de desabilitar a autenticação por senha. Mantenha uma sessão ativa como backup durante os testes.

Teste a conexão SSH com modo verbose:

ssh -v usuario@ip-do-servidor

Procure por estas linhas no output de debug:

debug1: Offering public key: /home/usuario/.ssh/id_rsa RSA SHA256:...
debug1: Server accepts key: pkalg rsa-sha2-512 blen 279
debug1: Authentication succeeded (publickey)

Se a autenticação falhar, use debug mais detalhado:

ssh -vvv usuario@ip-do-servidor

Teste com especificação explícita da chave:

ssh -i ~/.ssh/id_rsa usuario@ip-do-servidor

Verificando logs do servidor

No servidor, monitore os logs de autenticação:

sudo tail -f /var/log/auth.log

Procure por mensagens de sucesso:

sshd[1234]: Accepted publickey for usuario from 192.168.1.100 port 12345 ssh2: RSA SHA256:...

Configurando servidor SSH para chaves

A configuração do daemon SSH deve ser ajustada para priorizar autenticação por chave e aumentar a segurança geral do sistema.

Edite o arquivo de configuração SSH:

sudo nano /etc/ssh/sshd_config

Configure as seguintes opções:

# Habilitar autenticação por chave pública
PubkeyAuthentication yes

# Especificar arquivo de chaves autorizadas
AuthorizedKeysFile .ssh/authorized_keys

# Desabilitar autenticação por senha (após testar)
PasswordAuthentication no

# Desabilitar autenticação por desafio-resposta
ChallengeResponseAuthentication no

# Desabilitar login root direto
PermitRootLogin no

# Limitar tentativas de autenticação
MaxAuthTries 3

Atenção: Teste completamente a autenticação por chave antes de definir PasswordAuthentication como no.

Valide a configuração SSH:

sudo sshd -t

Se não houver erros, reinicie o serviço:

sudo systemctl restart ssh

Verifique o status do serviço:

sudo systemctl status ssh

Configurações adicionais de segurança

Para aumentar ainda mais a segurança, configure estas opções no sshd_config:

# Alterar porta padrão
Port 2222

# Limitar usuários específicos
AllowUsers usuario1 usuario2

# Desabilitar encaminhamento X11
X11Forwarding no

# Timeout de conexão inativa
ClientAliveInterval 300
ClientAliveCountMax 2

Problemas comuns e como resolver

Erro: Permission denied (publickey)

Causa: Permissões incorretas nos arquivos SSH ou chave não encontrada no servidor.
Solução: Verifique permissões com chmod 700 ~/.ssh e chmod 600 ~/.ssh/authorized_keys. Confirme se a chave pública está corretamente copiada no arquivo authorized_keys.

Erro: Host key verification failed

Causa: Chave do host mudou ou conexão man-in-the-middle detectada.
Solução: Remova a entrada antiga com ssh-keygen -R ip-do-servidor e reconecte para aceitar a nova chave do host. Verifique se o IP/hostname está correto.

Erro: ssh-copy-id command not found

Causa: Comando ssh-copy-id não instalado no sistema cliente.
Solução: Instale com sudo apt install openssh-client ou copie manualmente a chave usando cat ~/.ssh/id_rsa.pub | ssh usuario@servidor "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys".

Conexão ainda solicita senha após configuração

Causa: Configuração SSH não aplicada ou PasswordAuthentication ainda habilitada.
Solução: Verifique se PubkeyAuthentication yes está no /etc/ssh/sshd_config e reinicie o serviço SSH. Use ssh -v para debug detalhado da autenticação.

Chave privada protegida por passphrase não funciona

Causa: SSH-agent não está executando ou chave não foi adicionada.
Solução: Inicie o ssh-agent com eval $(ssh-agent) e adicione a chave com ssh-add ~/.ssh/id_rsa. Configure o ssh-agent para iniciar automaticamente no login.

Perguntas frequentes sobre autenticação SSH por chave

Como gerar uma chave SSH no Ubuntu 22.04?

Use o comando ssh-keygen -t rsa -b 4096 -C '[email protected]' no terminal. O sistema criará um par de chaves (pública e privada) no diretório ~/.ssh/. A chave privada fica no arquivo id_rsa e a pública no id_rsa.pub.

Onde fica o arquivo authorized_keys no Ubuntu?

O arquivo authorized_keys fica em ~/.ssh/authorized_keys no diretório home do usuário. Este arquivo contém as chaves públicas autorizadas a fazer login SSH sem senha. As permissões devem ser 600 para o arquivo e 700 para o diretório ~/.ssh.

Como desabilitar login por senha no SSH?

Edite o arquivo /etc/ssh/sshd_config e altere PasswordAuthentication para no. Também configure PubkeyAuthentication yes e ChallengeResponseAuthentication no. Reinicie o serviço SSH com sudo systemctl restart ssh para aplicar as mudanças.

O que fazer se a autenticação por chave SSH não funcionar?

Verifique as permissões do diretório ~/.ssh (700) e do arquivo authorized_keys (600). Confirme se a chave pública está corretamente copiada no arquivo authorized_keys. Use ssh -v para debug detalhado e verifique os logs em /var/log/auth.log.

É seguro desabilitar completamente a autenticação por senha?

Sim, é mais seguro usar apenas chaves SSH, pois elimina ataques de força bruta contra senhas. Porém, mantenha sempre uma forma alternativa de acesso (console do provedor) caso perca a chave privada. Teste completamente antes de desabilitar senhas em produção.

Conclusão

  • Configure sempre permissões corretas (700 para ~/.ssh, 600 para chaves) antes de testar conexões
  • Mantenha backup das chaves privadas e uma forma alternativa de acesso ao servidor
  • Monitore logs de autenticação regularmente para detectar tentativas de acesso não autorizadas

Leia também

Precisa de ajuda com configuração SSH em seu VPS?

Nossa equipe técnica pode auxiliar na implementação segura de autenticação SSH por chave em servidores Ubuntu 22.04. Oferecemos suporte especializado para configurações avançadas de segurança.

Conheça nossos planos de VPS Linux

  • 0 Os usuários acharam isso útil
  • ssh, autenticacao, chave-publica, ubuntu, seguranca, AviraHost
Esta resposta foi útil?

Artigos Relacionados

Como Configurar Firewall em Servidor VPS Linux: Guia Prático com UFW

Como Configurar Firewall em Servidor VPS Linux: Guia Prático com UFWO firewall é essencial para...

Como Configurar e Usar o Fail2Ban para Proteger seu Servidor VPS Linux

O que é o Fail2Ban? Fail2Ban é uma ferramenta de segurança que monitora logs de serviços (como...

Como Instalar e Configurar o Firewall CSF no VPS Linux para Segurança Avançada

Introdução O CSF (ConfigServer Security & Firewall) é uma solução robusta de firewall para...

Guia Prático para Ativar e Gerenciar o ModSecurity no Apache em VPS Linux e Servidores Dedicados

Introdução O ModSecurity é um firewall de aplicação web (WAF) essencial para proteger servidores...

Checklist Completo para Configurar e Testar o Firewall UFW em VPS Linux e Servidores Dedicados

Introdução O UFW (Uncomplicated Firewall) é uma ferramenta simples e eficiente para gerenciar...