11 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:
- Gerar par de chaves SSH no cliente com ssh-keygen
- Copiar chave pública para o servidor usando ssh-copy-id
- Configurar permissões corretas nos arquivos e diretórios
- Editar arquivo sshd_config para desabilitar autenticação por senha
- Reiniciar serviço SSH e testar conexão
- Criar backup das chaves e documentar configuração
Pré-requisitos
- Servidor Ubuntu 22.04 LTS com acesso SSH ativo
- Cliente com OpenSSH instalado (Linux, macOS ou Windows 10+)
- Acesso administrativo (sudo) no servidor
- Conexão de rede estável entre cliente e servidor
- Backup atual do arquivo /etc/ssh/sshd_config
Gerando chaves SSH no cliente
A geração de chaves SSH é o primeiro passo para estabelecer autenticação segura. O algoritmo RSA com 4096 bits oferece excelente segurança para ambientes corporativos.
Execute o comando no terminal do cliente:
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: Use uma passphrase forte para proteger a chave privada. Isso adiciona uma camada extra de segurança caso o arquivo seja comprometido.
Verifique se as chaves foram criadas corretamente:
ls -la ~/.ssh/
total 16
drwx------ 2 usuario usuario 4096 dez 15 10:30 .
drwxr-xr-x 5 usuario usuario 4096 dez 15 10:25 ..
-rw------- 1 usuario usuario 3243 dez 15 10:30 id_rsa
-rw-r--r-- 1 usuario usuario 742 dez 15 10:30 id_rsa.pub
Configurando múltiplas chaves SSH
Para gerenciar diferentes servidores, crie chaves específicas com nomes descritivos:
ssh-keygen -t rsa -b 4096 -f ~/.ssh/servidor_producao -C "[email protected]"
Copiando chave pública para o servidor
A transferência da chave pública pode ser feita automaticamente com ssh-copy-id ou manualmente. O método automático é mais seguro e eficiente.
Use o comando ssh-copy-id para transferir automaticamente:
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
Digite a senha atual do usuário quando solicitado:
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/usuario/.ssh/id_rsa.pub"
Number of key(s) added: 1
Now try logging into the machine, with: "ssh '[email protected]'"
and check to make sure that only the key(s) you wanted were added.
Método manual para cópia da chave
Se ssh-copy-id não estiver disponível, copie manualmente:
cat ~/.ssh/id_rsa.pub | ssh [email protected] "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
Ou visualize a chave e copie o conteúdo:
cat ~/.ssh/id_rsa.pub
No servidor, adicione ao arquivo authorized_keys:
echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQ..." >> ~/.ssh/authorized_keys
Configurando permissões corretas no servidor
As permissões SSH devem seguir padrões específicos para funcionar corretamente. Permissões incorretas são a causa mais comum de falhas na autenticação por chave.
Conecte-se ao servidor e configure as permissões:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
chmod 600 ~/.ssh/id_rsa 2>/dev/null || true
Verifique se as permissões estão corretas:
ls -la ~/.ssh/
total 12
drwx------ 2 usuario usuario 4096 dez 15 11:00 .
drwxr-xr-x 5 usuario usuario 4096 dez 15 10:45 ..
-rw------- 1 usuario usuario 742 dez 15 11:00 authorized_keys
Verificando propriedade dos arquivos
Confirme que o usuário é proprietário dos arquivos SSH:
sudo chown -R $USER:$USER ~/.ssh/
Para usuários específicos, substitua $USER pelo nome correto:
sudo chown -R webmaster:webmaster /home/webmaster/.ssh/
Editando configuração do servidor SSH
A configuração do daemon SSH deve ser ajustada para desabilitar autenticação por senha e fortalecer a segurança. Sempre faça backup antes de editar arquivos críticos.
Crie backup do arquivo de configuração:
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup
Edite o arquivo de configuração:
sudo nano /etc/ssh/sshd_config
Localize e modifique estas linhas:
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no
Atenção: Teste a conexão por chave antes de desabilitar PasswordAuthentication. Uma configuração incorreta pode bloquear o acesso ao servidor.
Configurações adicionais de segurança
Adicione estas configurações para maior segurança:
PermitRootLogin no
MaxAuthTries 3
ClientAliveInterval 300
ClientAliveCountMax 2
Valide a configuração antes de aplicar:
sudo sshd -t
Se não houver erros, reinicie o serviço SSH:
sudo systemctl restart ssh
Testando autenticação por chave SSH
O teste de conectividade SSH deve ser realizado em uma nova sessão terminal, mantendo a conexão atual aberta como backup. Isso evita bloqueios acidentais.
Abra um novo terminal e teste a conexão:
ssh -i ~/.ssh/id_rsa [email protected]
Uma conexão bem-sucedida mostrará:
Welcome to Ubuntu 22.04.3 LTS (GNU/Linux 5.15.0-91-generic x86_64)
Last login: Fri Dec 15 11:15:23 2023 from 192.168.1.50
Teste com modo verboso para diagnóstico
Use o modo verboso para identificar problemas:
ssh -v -i ~/.ssh/id_rsa [email protected]
Procure por estas linhas no output:
debug1: Offering public key: /home/usuario/.ssh/id_rsa RSA SHA256:...
debug1: Server accepts key: /home/usuario/.ssh/id_rsa RSA SHA256:...
debug1: Authentication succeeded (publickey).
Configurando alias SSH para facilitar acesso
Crie aliases no arquivo ~/.ssh/config:
nano ~/.ssh/config
Adicione configuração do servidor:
Host servidor-producao
HostName 192.168.1.100
User usuario
IdentityFile ~/.ssh/id_rsa
Port 22
Agora conecte usando apenas:
ssh servidor-producao
Problemas comuns e como resolver
Erro: Permission denied (publickey)
Causa: Permissões incorretas nos arquivos SSH ou chave não autorizada no servidor.
Solução: Verifique permissões com ls -la ~/.ssh/ e confirme que a chave pública está em authorized_keys. Execute chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys no servidor.
Erro: Host key verification failed
Causa: Chave do servidor mudou ou conflito no arquivo known_hosts do cliente.
Solução: Remova a entrada antiga com ssh-keygen -R 192.168.1.100 e reconecte para aceitar a nova chave. Verifique se não há ataques man-in-the-middle.
Erro: Too many authentication failures
Causa: Muitas chaves SSH carregadas no ssh-agent ou tentativas de autenticação.
Solução: Use ssh -o IdentitiesOnly=yes -i ~/.ssh/id_rsa usuario@servidor para especificar apenas uma chave. Configure MaxAuthTries no servidor se necessário.
Conexão funciona mas ainda pede senha
Causa: PasswordAuthentication ainda habilitado ou configuração SSH não recarregada.
Solução: Confirme que PasswordAuthentication está definido como "no" em /etc/ssh/sshd_config e reinicie o serviço SSH com sudo systemctl restart ssh.
Backup e gerenciamento de chaves SSH
O backup de chaves SSH é essencial para manter acesso aos servidores. Chaves perdidas podem resultar em bloqueio permanente se não houver métodos alternativos de acesso.
Crie backup seguro das chaves privadas:
tar -czf ssh-keys-backup-$(date +%Y%m%d).tar.gz ~/.ssh/
gpg -c ssh-keys-backup-$(date +%Y%m%d).tar.gz
Armazene o backup criptografado em local seguro e remova o arquivo não criptografado:
rm ssh-keys-backup-$(date +%Y%m%d).tar.gz
Rotação de chaves SSH
Implemente rotação regular de chaves para manter segurança:
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa_new -C "[email protected]"
Adicione a nova chave ao servidor mantendo a antiga temporariamente:
ssh-copy-id -i ~/.ssh/id_rsa_new.pub usuario@servidor
Teste a nova chave e remova a antiga do authorized_keys quando confirmado.
Monitoramento de acessos SSH
Configure logs para monitorar tentativas de acesso:
sudo tail -f /var/log/auth.log | grep ssh
Procure por padrões suspeitos como múltiplas falhas de autenticação:
Dec 15 12:00:01 servidor sshd[1234]: Accepted publickey for usuario from 192.168.1.50 port 54321 ssh2: RSA SHA256:...
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. Isso criará um par de chaves RSA de 4096 bits com comentário identificador. As chaves serão salvas em ~/.ssh/id_rsa (privada) e ~/.ssh/id_rsa.pub (pública).
É seguro desabilitar autenticação por senha no SSH?
Sim, é altamente recomendado desabilitar autenticação por senha após configurar chaves SSH. Isso elimina ataques de força bruta e garante que apenas usuários com chaves autorizadas possam acessar o servidor. Sempre teste o acesso por chave antes de desabilitar senhas.
Onde ficam armazenadas as chaves SSH autorizadas no servidor?
As chaves públicas autorizadas ficam no arquivo ~/.ssh/authorized_keys do usuário no servidor. Este arquivo deve ter permissão 600 e o diretório ~/.ssh deve ter permissão 700 para funcionar corretamente.
Como testar se a autenticação por chave SSH está funcionando?
Execute ssh -i ~/.ssh/id_rsa usuario@ip-do-servidor para testar a conexão. Se configurado corretamente, você será conectado sem solicitar senha. Use ssh -v para modo verboso e diagnosticar problemas de conexão.
O que fazer se perder a chave privada SSH?
Se perder a chave privada, você precisará acessar o servidor por outro meio (console, painel de controle) para adicionar uma nova chave pública ao arquivo authorized_keys. Sempre mantenha backup seguro das chaves privadas ou configure múltiplas chaves autorizadas.
Conclusão
A configuração correta de autenticação SSH por chave no Ubuntu 22.04 elimina vulnerabilidades de senha e estabelece acesso seguro aos servidores. Este checklist garante implementação adequada desde a geração até o teste final.
- Mantenha backups seguros das chaves privadas e documente todas as configurações aplicadas
- Implemente rotação regular de chaves e monitore logs de acesso para detectar atividades suspeitas
- Configure múltiplas chaves autorizadas para diferentes administradores e mantenha acesso de emergência via console
Leia também
- Instalando painel de gerenciamento de hospedagem VirtualMin.
- Como usar a ferramenta oficial de acesso remoto do Windows no PC e celular
- Como acessar o painel de gerenciamento dos meus Serviços.
Precisa de ajuda com configuração SSH em servidores?
Nossa equipe especializada pode auxiliar na implementação segura de autenticação SSH e outras configurações avançadas de segurança. Oferecemos suporte técnico completo para ambientes Linux corporativos.