Laboratório em bancada
Laboratório: Servidor SSH Seguro no Ubuntu Server
Você vai instalar e configurar um servidor SSH seguro no Ubuntu Server, com autenticação por chave, restrição de acesso e hardening básico. Em cerca de 2 horas, terá um ambiente funcional para acesso remoto seguro.

- Duração estimada
- 120 min
- Passos
- 12
- Validações
- 4
Este laboratório ensina a instalar o OpenSSH Server em um Ubuntu Server, configurar autenticação por chave pública, limitar o acesso remoto, aplicar hardening básico e validar o funcionamento. O objetivo é garantir acesso remoto seguro, minimizando riscos comuns em ambientes de produção.
Topologia
Uma máquina Ubuntu Server (192.168.56.10) atuando como servidor SSH. Outra máquina (Ubuntu Desktop ou Windows com cliente SSH) na mesma rede privada (192.168.56.20), acessando remotamente o servidor via SSH.
┌───────────────┐ SSH ┌───────────────┐
│ Cliente SSH │ <--------------> │ Ubuntu Server │
│ 192.168.56.20 │ │ 192.168.56.10 │
└───────────────┘ └───────────────┘Equipamentos e software
| Item | Requisito, licença ou versão |
|---|---|
| Máquina virtual Ubuntu Server | 1 vCPU, 1 GB RAM, 1 interface de rede, Ubuntu Server 22.04 LTS ou superior |
| Máquina cliente (Ubuntu Desktop ou Windows) | 1 vCPU, 1 GB RAM, SSH client instalado |
| OpenSSH | BSD · a versão estável atual |
| Ubuntu Server | GPLv2 e outras · 22.04 LTS |
Roteiro
- Preparar o Ubuntu Server
Garanta que o Ubuntu Server está instalado, atualizado e com acesso à rede. Isso minimiza falhas de dependências e vulnerabilidades conhecidas.
sudo apt update && sudo apt upgrade -yO que você deve ver: Sistema atualizado, sem erros.
- Instalar o OpenSSH Server
O OpenSSH é o padrão para acesso remoto seguro em servidores Linux. Instale o pacote.
sudo apt install openssh-server -yO que você deve ver: Pacote openssh-server instalado.
- Verificar status do serviço SSH
Confirme que o serviço está ativo e habilitado no boot.
sudo systemctl status sshO que você deve ver: Status: active (running)
- Criar um usuário administrativo dedicado
Nunca use root direto em produção. Crie um usuário para administração remota.
sudo adduser adminssh && sudo usermod -aG sudo adminsshO que você deve ver: Usuário adminssh criado e adicionado ao grupo sudo.
- Gerar par de chaves SSH no cliente
A autenticação por chave é mais segura que senha. Gere um par de chaves no cliente.
ssh-keygen -t ed25519 -C "adminssh@lab"O que você deve ver: Arquivo id_ed25519 e id_ed25519.pub criado em ~/.ssh/
- Copiar chave pública para o servidor
A chave pública autoriza o acesso sem senha. Use ssh-copy-id.
ssh-copy-id adminssh@192.168.56.10O que você deve ver: Mensagem de sucesso indicando que a chave foi copiada.
- Restringir login SSH apenas por chave
Desative autenticação por senha para evitar ataques de força bruta. Edite o arquivo de configuração.
sudo nano /etc/ssh/sshd_configO que você deve ver: Arquivo aberto para edição.
- Configurar parâmetros de segurança no SSH
Altere ou adicione as linhas abaixo para reforçar a segurança.
PermitRootLogin no PasswordAuthentication no AllowUsers adminssh MaxAuthTries 3O que você deve ver: Parâmetros salvos em /etc/ssh/sshd_config.
- Reiniciar o serviço SSH
As alterações só têm efeito após reiniciar o serviço.
sudo systemctl restart sshO que você deve ver: Serviço ssh reiniciado sem erros.
- Testar acesso SSH com chave
Valide que o acesso funciona apenas via chave e com o usuário permitido.
ssh adminssh@192.168.56.10O que você deve ver: Acesso concedido sem pedir senha.
- Testar bloqueio de root e senha
Tente acessar como root ou com senha para garantir que está bloqueado.
ssh root@192.168.56.10O que você deve ver: Acesso negado.
- Revisar logs de autenticação
Verifique os logs para identificar tentativas de acesso não autorizado.
sudo tail /var/log/auth.logO que você deve ver: Registros de tentativas de login, sucesso ou falha.
Como saber que funcionou
| Teste | Comando | Critério |
|---|---|---|
| Acesso SSH com chave | ssh adminssh@192.168.56.10 | Login sem senha, acesso ao shell do servidor. |
| Tentativa de login como root | ssh root@192.168.56.10 | Acesso negado pelo servidor. |
| Tentativa de login com senha | ssh adminssh@192.168.56.10 | Acesso negado se não houver chave. |
| Verificar logs de acesso | sudo grep sshd /var/log/auth.log | Registros mostrando conexões e bloqueios. |
Troubleshooting
| Sintoma | Causa provável | Correção |
|---|---|---|
| Não consegue conectar via SSH | Serviço SSH não está rodando | Execute 'sudo systemctl start ssh' |
| Acesso por senha ainda permitido | Parâmetro PasswordAuthentication não está 'no' ou serviço não foi reiniciado | Edite o sshd_config e reinicie o serviço |
| Acesso root ainda permitido | PermitRootLogin não está definido corretamente | Ajuste para 'PermitRootLogin no' e reinicie o SSH |
| Chave SSH não aceita | Permissões erradas no ~/.ssh ou authorized_keys | Ajuste permissões: 'chmod 700 ~/.ssh' e 'chmod 600 ~/.ssh/authorized_keys' |
| Múltiplas tentativas de login bloqueiam o acesso | MaxAuthTries muito baixo | Aumente o valor em /etc/ssh/sshd_config se necessário |
Segurança e hardening
- Nunca permita login direto de root via SSH
- Use autenticação por chave, nunca só senha
- Restrinja usuários autorizados com AllowUsers
- Monitore logs de autenticação regularmente
- Mantenha o OpenSSH sempre atualizado
