- 1 1. Introdução
- 2 2. Configuração Básica do SSH
- 3 Conclusão
- 4 3. Reforçando a Segurança do SSH
- 5 Conclusão
- 6 4. Configuração Avançada do SSH
- 7 Conclusão
- 8 5. Solução de Problemas do SSH
- 9 Conclusão
- 10 6. FAQ (Perguntas Frequentes)
- 10.1 6.1 Como corrigir problemas de timeout do SSH?
- 10.2 6.2 O que fazer se você esquecer sua senha SSH?
- 10.3 6.3 Como usar SSH no Windows?
- 10.4 6.4 Como configurar SSH no Ubuntu WSL?
- 10.5 6.5 Práticas recomendadas de segurança adicionais
- 10.6 6.6 Como monitorar logs SSH em tempo real?
- 10.7 6.7 Dicas para usar SSH de forma mais conveniente
- 11 Conclusão
1. Introdução
Configurar o SSH no Ubuntu é essencial para gerenciar servidores remotos. SSH (Secure Shell) é um protocolo que fornece comunicação criptografada segura, permitindo que os usuários acessem servidores remotamente, executem comandos e transfiram arquivos.
Este artigo explica como configurar o SSH no Ubuntu, desde as etapas básicas de instalação até medidas avançadas de segurança.
1.1 Por que Configurar o SSH no Ubuntu?
1.1.1 O que é SSH?
SSH (Secure Shell) é um protocolo que permite comunicação segura sobre uma rede. É comumente usado para fazer login em servidores remotos, transferir arquivos e fazer tunelamento (encaminhamento de portas). Ao contrário do Telnet ou FTP tradicionais, o SSH criptografa toda a comunicação, proporcionando forte segurança.
1.1.2 Quando o SSH é Necessário no Ubuntu
Cenários comuns nos quais o SSH é usado para gerenciar o Ubuntu remotamente incluem:
- Administração de servidores em nuvem : servidores Linux na AWS, GCP, Vultr e outros são tipicamente acessados via SSH.
- Operações remotas em ambientes LAN : acesso a servidores internos ou máquinas de desenvolvimento remotamente.
- Gerenciamento de dispositivos IoT : controle de sistemas embarcados como Raspberry Pi remotamente.
Por padrão, o servidor SSH está desativado no Ubuntu, portanto ele deve ser instalado e configurado manualmente para habilitar o acesso SSH.
2. Configuração Básica do SSH
Para usar o SSH no Ubuntu, você deve instalar o servidor SSH (OpenSSH) e configurá‑lo corretamente. Esta seção explica como instalar o SSH, ajustar configurações básicas, configurar o firewall e conectar ao servidor.
2.1 Instalando e Iniciando o OpenSSH
2.1.1 O que é OpenSSH?
OpenSSH (Open Secure Shell) é uma implementação de código aberto do protocolo SSH. Ele suporta conexões remotas, transferências seguras de arquivos (SCP e SFTP) e encaminhamento de portas.
2.1.2 Instalando o OpenSSH
O Ubuntu não inclui um servidor SSH por padrão, então instale‑o usando o comando abaixo:
sudo apt update && sudo apt install -y openssh-server
Isso atualiza as listas de pacotes e instala o servidor OpenSSH.
2.1.3 Iniciando o SSH e Habilitando a Inicialização Automática
Após a instalação, inicie o servidor SSH e habilite a inicialização automática:
sudo systemctl enable --now ssh
A opção enable garante que o SSH seja iniciado automaticamente quando o sistema operacional for inicializado.
2.1.4 Verificando o Status do SSH
Verifique se o SSH está em execução:
systemctl status ssh
Se a saída mostrar active (running), o SSH está funcionando normalmente:
● ssh.service - OpenBSD Secure Shell server
Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2025-02-28 12:00:00 UTC; 5min ago
Se mostrar inactive (dead) ou failed, inicie o SSH manualmente:
sudo systemctl start ssh
2.2 Configurando o Firewall (UFW)
O Ubuntu inclui um firewall simples chamado ufw (Uncomplicated Firewall). Você deve permitir conexões SSH através dele.
2.2.1 Verificando o Status do UFW
sudo ufw status
Exemplo de saída (inactive):
Status: inactive
Exemplo de saída (active):
Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
2.2.2 Permitindo SSH
sudo ufw allow ssh
Ou explicitamente:
sudo ufw allow 22/tcp
2.2.3 Habilitando o UFW
sudo ufw enable
2.2.4 Verificando as Regras do UFW
sudo ufw status verbose
Exemplo:
Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
22/tcp (v6) ALLOW Anywhere (v6)
2.3 Métodos Básicos de Conexão SSH
Uma vez que o SSH esteja em execução, conecte‑se a partir de uma máquina cliente.
2.3.1 Conectando a partir de Linux/macOS
ssh username@server-ip-address
Exemplo:
ssh user@192.168.1.100
Você pode ver um aviso de segurança na primeira conexão:
The authenticity of host '192.168.1.100 (192.168.1.100)' can't be established.
ECDSA key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
Are you sure you want to continue connecting (yes/no)?
Digite yes para prosseguir.
2.3.2 Conectando a partir do Windows
Você pode usar PowerShell ou PuTTY.
Usando PowerShell (Windows 10+ inclui SSH):
ssh username@server-ip-address
Usando PuTTY:
- Baixe o PuTTY do site oficial
- Abra o PuTTY e insira o IP do servidor em
Host Name (or IP address) - Selecione
SSHcomo tipo de conexão - Clique em Open e faça login
Conclusão
Esta seção abordou o básico de configuração do SSH no Ubuntu:
- Como instalar e iniciar o OpenSSH
- Como permitir conexões SSH com o UFW
- Como conectar a partir do Linux/macOS e Windows
3. Reforçando a Segurança do SSH
O SSH é poderoso, mas deixá-lo com as configurações padrão aumenta os riscos de segurança. Os invasores frequentemente tentam ataques de força bruta ou varreduras de portas. Reforçar a segurança do SSH é essencial.
3.1 Desativar Login como Root
O login como root fornece controle total do sistema e é um alvo principal para invasores. Desativá-lo melhora a segurança.
3.1.1 Passos
- Edite o arquivo de configuração do SSH:
sudo nano /etc/ssh/sshd_config
- Altere a linha para:
PermitRootLogin no
- Reinicie o SSH:
sudo systemctl restart ssh
- Confirme a alteração:
sudo grep PermitRootLogin /etc/ssh/sshd_config
Se a saída for PermitRootLogin no, a configuração foi aplicada.
3.2 Desativar Autenticação por Senha e Usar Autenticação por Chave
A autenticação por chave pública é mais segura que senhas e reduz o risco de ataques de força bruta.
3.2.1 Criando Chaves SSH
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa
Isso gera dois arquivos:
- id_rsa (chave privada) — mantenha localmente, nunca compartilhe
- id_rsa.pub (chave pública) — envie para o servidor
3.2.2 Enviando a Chave Pública
ssh-copy-id username@server-ip-address
3.2.3 Desativando Autenticação por Senha
sudo nano /etc/ssh/sshd_config
Edite:
PasswordAuthentication no
Reinicie o SSH:
sudo systemctl restart ssh
3.3 Permitir Acesso SSH Apenas a Usuários Específicos
Para melhorar a segurança do SSH, você pode restringir o acesso para que apenas determinados usuários possam fazer login.
3.3.1 Etapas de Configuração
- Abra o arquivo de configuração do SSH
/etc/ssh/sshd_config:sudo nano /etc/ssh/sshd_config
- Adicione os usuários permitidos a acessar via SSH:
AllowUsers username1 username2
- Reinicie o SSH para aplicar as configurações:
sudo systemctl restart ssh
3.4 Alterando a Porta do SSH
Como a porta 22 é frequentemente alvo de invasores, mudar a porta padrão pode melhorar a segurança.
3.4.1 Etapas de Configuração
- Abra o arquivo de configuração do SSH:
sudo nano /etc/ssh/sshd_config
- Modifique a configuração da porta, por exemplo:
Port 2200
- Reinicie o SSH:
sudo systemctl restart ssh
3.4.2 Atualizando as Configurações do Firewall
Se você mudar a porta, atualize o UFW:
sudo ufw allow 2200/tcp
Verifique a nova regra:
sudo ufw status
3.5 Prevenir Ataques de Força Bruta com Fail2Ban
O Fail2Ban detecta tentativas de login falhadas e bloqueia o IP atacante por um período especificado.
3.5.1 Instalar o Fail2Ban
sudo apt install fail2ban -y
3.5.2 Criar um Arquivo de Configuração
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Abra o arquivo:
sudo nano /etc/fail2ban/jail.local
Modifique as configurações:
[sshd]
enabled = true
port = 2200
maxretry = 3
findtime = 600
bantime = 3600
3.5.3 Reiniciar o Fail2Ban
sudo systemctl restart fail2ban
3.5.4 Verificar Lista de Banimentos
sudo fail2ban-client status sshd
Conclusão
Esta seção explicou métodos para melhorar a segurança do SSH:
- Desativar login root
- Desativar autenticação por senha e habilitar autenticação por chave
- Restringir o acesso SSH a usuários específicos
- Alterar a porta SSH
- Usar Fail2Ban para bloquear tentativas não autorizadas
Implementar essas configurações ajuda a criar um ambiente SSH seguro.

4. Configuração Avançada do SSH
Depois que a configuração básica do SSH e o endurecimento de segurança forem concluídos, você pode avançar para recursos avançados que aumentam a flexibilidade e a segurança. Esta seção aborda o gerenciamento de ssh.socket (Ubuntu 22.10+), túneis SSH, escuta em múltiplas portas e controle de acesso baseado em IP.
4.1 Usando ssh.socket no Ubuntu 22.10+
No Ubuntu 22.10+, o SSH pode ser gerenciado por ssh.socket em vez de ssh.service. Essa ativação baseada em socket inicia o SSH somente quando necessário, economizando recursos do sistema.
4.1.1 Verificar o Status do ssh.socket
sudo systemctl status ssh.socket
Exemplo de saída (ativado):
● ssh.socket - OpenSSH Server Socket
Loaded: loaded (/lib/systemd/system/ssh.socket; enabled; vendor preset: enabled)
Active: active (listening) since Fri 2025-02-28 12:00:00 UTC
4.1.2 Habilitar ou Desabilitar o ssh.socket
Ativar o socket:
sudo systemctl enable --now ssh.socket
Voltar ao ssh.service clássico:
sudo systemctl disable --now ssh.socket
sudo systemctl enable --now ssh.service
4.2 Tunelamento SSH (Encaminhamento de Portas)
O tunelamento SSH estabelece canais de comunicação seguros entre sistemas locais e remotos.
4.2.1 Encaminhamento de Porta Local
Útil para conectar de forma segura a bancos de dados remotos ou serviços internos.
Exemplo: Acessar um servidor MySQL remoto na porta 3306
ssh -L 3306:localhost:3306 username@server-ip-address
4.2.2 Encaminhamento de Porta Reverso
Expor serviços locais por meio de um servidor remoto.
Exemplo: Publicar servidor web local na porta remota 8080
ssh -R 8080:localhost:80 username@server-ip-address
4.2.3 Encaminhamento de Porta Dinâmico (Proxy SOCKS)
Usar o SSH como proxy SOCKS para navegação anônima.
ssh -D 1080 username@server-ip-address
4.3 Escuta em Múltiplas Portas
O SSH pode escutar em mais de uma porta, oferecendo flexibilidade em diferentes ambientes de rede.
4.3.1 Etapas de Configuração
- Edite
/etc/ssh/sshd_config:sudo nano /etc/ssh/sshd_config
- Adicione várias linhas
Port:Port 22 Port 2200
- Reinicie o SSH:
sudo systemctl restart ssh
- Permita a nova porta com o UFW:
sudo ufw allow 2200/tcp
4.4 Permitir SSH Apenas de Endereços IP Específicos
Restringir o acesso SSH por endereço IP oferece um controle de segurança robusto.
4.4.1 Configurar /etc/hosts.allow
sudo nano /etc/hosts.allow
Adicione um endereço IP permitido:
sshd: 192.168.1.100
4.4.2 Configurar /etc/hosts.deny
sudo nano /etc/hosts.deny
Negar todos os demais:
sshd: ALL
Conclusão
Esta seção abordou tópicos avançados de configuração do SSH:
- Gerenciamento do
ssh.socketno Ubuntu 22.10+ - Uso de túneis SSH (encaminhamento de portas)
- Escuta em múltiplas portas SSH
- Restrição de acesso SSH a endereços IP específicos
Aplicar essas configurações melhora tanto a segurança quanto a usabilidade.
5. Solução de Problemas do SSH
Mesmo com a configuração correta, conexões SSH podem falhar ocasionalmente. Esta seção explica problemas comuns do SSH e suas soluções.
5.1 Quando o SSH Não Consegue Conectar
Se o SSH retornar Connection refused ou expirar, as causas possíveis incluem problemas no serviço, porta configurada incorretamente ou restrições de firewall.
5.1.1 Serviço SSH Não Está em Execução
sudo systemctl status ssh
Solução:
- Se
inactiveoufailed, reinicie o SSH:sudo systemctl restart ssh
- Habilite a inicialização automática:
sudo systemctl enable ssh
5.1.2 Porta SSH Não Está Aberta
ssh -p 2200 username@server-ip-address
Verifique as portas abertas:
sudo netstat -tulnp | grep ssh
Or:
ss -tulnp | grep ssh
5.1.3 Firewall (UFW) Bloqueando SSH
sudo ufw status
Permitir SSH:
sudo ufw allow 22/tcp
Se estiver usando uma porta personalizada:
sudo ufw allow 2200/tcp
5.2 Erros de Autenticação
5.2.1 Nome de usuário ou senha incorretos
ssh username@server-ip-address
5.2.2 Chave pública não instalada corretamente
cat ~/.ssh/authorized_keys
Verifique se corresponde ao id_rsa.pub local.
5.2.3 Permissões incorretas no diretório .ssh
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
Também assegure:
chmod 755 /home/username
5.3 Conexões SSH instáveis ou desconexões inesperadas
5.3.1 Ajustar ClientAliveInterval
ClientAliveInterval 60
ClientAliveCountMax 3
sudo systemctl restart ssh
5.3.2 Ajustar configurações do cliente local
Host *
ServerAliveInterval 60
ServerAliveCountMax 3
5.4 Visualizando logs SSH
5.4.1 Visualizar logs em tempo real
sudo journalctl -u ssh -f
5.4.2 Visualizar logs antigos
sudo cat /var/log/auth.log | grep ssh
sudo grep "Failed password" /var/log/auth.log
Conclusão
Esta seção explicou problemas comuns de SSH e como resolvê-los:
- Verifique se o serviço SSH está em execução
- Verifique portas abertas
- Verifique as configurações do firewall
- Garanta a autenticação correta por chave
- Corrija problemas de timeout e desconexão
- Analise os logs de SSH
A maioria dos problemas de SSH origina-se de má configuração ou restrições de rede. Use estas etapas de solução de problemas para resolver os problemas de forma eficiente.
6. FAQ (Perguntas Frequentes)
Esta seção responde a perguntas comuns relacionadas ao uso e configuração do SSH.
6.1 Como corrigir problemas de timeout do SSH?
6.1.1 Configurações do lado do servidor
ClientAliveInterval 60
ClientAliveCountMax 3
sudo systemctl restart ssh
6.1.2 Configurações do lado do cliente
Host *
ServerAliveInterval 60
ServerAliveCountMax 3
6.2 O que fazer se você esquecer sua senha SSH?
6.2.1 Se você tem acesso físico
- Inicialize em modo de usuário único (selecione
recovery modeno GRUB) - Redefina a senha:
passwd username
- Reinicie o sistema
6.2.2 Se o acesso físico não for possível (VPS na nuvem)
- Use o console VPS fornecido pelo serviço de hospedagem
- Use a autenticação por chave pública
6.3 Como usar SSH no Windows?
6.3.1 Usando PowerShell
ssh username@server-ip-address
6.3.2 Usando PuTTY
- Baixe e instale PuTTY
- Insira o endereço IP do servidor em
Host Name - Selecione
SSHcomo tipo de conexão - Faça login com nome de usuário e senha
6.4 Como configurar SSH no Ubuntu WSL?
6.4.1 Instalar o servidor SSH
sudo apt update && sudo apt install openssh-server
6.4.2 Modificar as configurações do SSH
PasswordAuthentication yes
Inicie o SSH manualmente (WSL não usa systemd):
sudo service ssh start
6.5 Práticas recomendadas de segurança adicionais
6.5.1 Use o Fail2Ban
sudo apt install fail2ban -y
[sshd]
enabled = true
port = 22
maxretry = 3
findtime = 600
bantime = 3600
sudo systemctl restart fail2ban
6.5.2 Alterar a porta SSH
Port 2200
sudo ufw allow 2200/tcp
6.6 Como monitorar logs SSH em tempo real?
sudo journalctl -u ssh -f
sudo cat /var/log/auth.log | grep ssh
6.7 Dicas para usar SSH de forma mais conveniente
6.7.1 Use .ssh/config para logins simples
Host myserver
HostName 192.168.1.100
User user
Port 2200
IdentityFile ~/.ssh/id_rsa
Então conecte com:
ssh myserver
6.7.2 Use ssh-agent
eval $(ssh-agent -s)
ssh-add ~/.ssh/id_rsa
Conclusão
Esta seção resumiu as perguntas frequentes relacionadas ao SSH:
- Como corrigir problemas de tempo limite do SSH
- Como recuperar uma senha esquecida
- Como usar o SSH no Windows e WSL
- Melhores práticas de segurança
- Como verificar os logs do SSH
- Dicas para tornar o SSH mais conveniente usando
.ssh/config
Ao aplicar essas técnicas, você pode construir um ambiente SSH seguro e eficiente e gerenciar servidores remotos de forma tranquila.



