- 1 1. Introdução
- 2 2. Conceitos Básicos do SSH
- 3 3. Instalando um Servidor SSH no Ubuntu
- 4 4. Configurando Conexões SSH
- 5 5. Executando Conexões SSH
- 6 6. Solucionando Problemas de Conexões SSH
- 6.1 Causas Comuns de Erros de Conexão SSH e Soluções
- 6.2 1. O Servidor SSH Não Está em Execução
- 6.3 2. O Firewall (UFW) Está Bloqueando o SSH
- 6.4 3. O Número da Porta Foi Alterado
- 6.5 4. Permissões Incorretas da Chave SSH
- 6.6 5. Incompatibilidade da Chave do Host
- 6.7 6. Verificando Logs do SSH
- 6.8 7. Problemas de Tempo Limite de Conexão SSH
- 6.9 Resumo
- 7 7. Melhorando a Segurança do SSH
- 8 8. Perguntas Frequentes (FAQ)
- 9 9. Conclusão
1. Introdução
Ao usar SSH no Ubuntu, você pode acessar e operar servidores ou PCs remotamente de forma segura. Este artigo fornece uma explicação detalhada do SSH — desde seus conceitos básicos e como instalar um servidor SSH no Ubuntu, até as melhores práticas de segurança e solução de problemas — usando explicações claras adequadas mesmo para iniciantes.
O que é SSH?
SSH (Secure Shell) é um protocolo que permite conexões remotas seguras a computadores através de uma rede. Diferente de protocolos tradicionais como Telnet ou FTP, o SSH criptografa os dados de comunicação, reduzindo significativamente o risco de escuta e adulteração.
Principais Casos de Uso do SSH no Ubuntu
Os principais cenários em que o SSH é usado no Ubuntu incluem os seguintes:
- Gerenciamento Remoto de Servidor : Operar servidores Ubuntu de locais remotos
- Transferência de Arquivos : Trocar arquivos de forma segura usando SCP ou SFTP
- Redirecionamento de Porta : Estabelecer conexões remotas seguras
O que Você Aprenderá Neste Artigo
- Conceitos básicos e mecanismos do SSH
- Como instalar um servidor SSH no Ubuntu
- Como configurar conexões SSH e solucionar erros
- Melhores práticas de segurança para SSH
2. Conceitos Básicos do SSH
Para usar o SSH de forma eficaz, é crucial entender seus conceitos principais. Neste capítulo, explicamos como o SSH funciona e as diferenças entre os métodos de autenticação.
Como o SSH Funciona
O SSH é um protocolo que estabelece uma conexão segura entre um cliente e um servidor. Por padrão, ele usa a porta TCP 22 para comunicação criptografada.
Principais Recursos
- Login Remoto : Executar comandos em um servidor
- Transferência de Arquivos : Enviar dados de forma segura via SCP ou SFTP
- Redirecionamento de Porta : Conectar a outros serviços através do SSH
Métodos de Autenticação do SSH
O SSH oferece principalmente dois métodos de autenticação:
Autenticação por Senha
- Fazer login usando um nome de usuário e senha
- Simples, mas vulnerável a ataques de força bruta
Autenticação por Chave Pública
- Autenticação usando um par de chaves pública e privada
- Mais seguro e recomendado por padrão
Vantagens do SSH
- Comunicação Criptografada : Protege os dados transmitidos
- Gerenciamento Remoto Fácil : Acesso de qualquer lugar
- Segurança Aprimorada : Ajuda a prevenir acesso não autorizado
3. Instalando um Servidor SSH no Ubuntu
Para usar o SSH no Ubuntu, você deve instalar o pacote do servidor OpenSSH. Este capítulo explica como instalá-lo e configurá-lo.
Instalando o Servidor OpenSSH
Você pode instalar o servidor OpenSSH no Ubuntu usando os seguintes comandos:
sudo apt update
sudo apt install openssh-server
Após a instalação, verifique se o serviço SSH está em execução:
sudo systemctl status ssh
Iniciando e Gerenciando o Serviço SSH
Para iniciar ou parar manualmente o serviço SSH, use os seguintes comandos:
# Start SSH
sudo systemctl start ssh
# Enable SSH to start automatically after reboot
sudo systemctl enable ssh
# Stop SSH
sudo systemctl stop ssh
Configurando o UFW (Firewall Não Complicado)
Se o UFW estiver ativado, as conexões SSH podem ser bloqueadas. Permita a porta SSH (22) com os comandos abaixo:
sudo ufw allow ssh
sudo ufw enable
4. Configurando Conexões SSH
Para usar o SSH de forma segura, a configuração adequada é essencial. Este capítulo explica como configurar a autenticação por chave pública.
Gerando um Par de Chaves
Execute o seguinte comando na máquina cliente para gerar um par de chaves pública/privada:
ssh-keygen -t rsa -b 4096
Por padrão, a chave privada é armazenada em ~/.ssh/id_rsa, e a chave pública é armazenada em ~/.ssh/id_rsa.pub.
Fazendo Upload da Chave Pública para o Servidor
Transfira a chave pública gerada para o servidor SSH:
ssh-copy-id username@server-ip-address
Ou transfira manualmente:
scp ~/.ssh/id_rsa.pub username@server-ip-address:~/
No servidor, execute os seguintes comandos para colocar a chave pública no diretório correto:
mkdir -p ~/.ssh
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
rm ~/id_rsa.pub
Editando sshd_config
Abra o arquivo de configuração do SSH para melhorar as configurações de segurança:
sudo nano /etc/ssh/sshd_config
Verifique e edite os seguintes itens de configuração:
# Disable password authentication (use public key only)
PasswordAuthentication no
# Disable root login
PermitRootLogin no
# Change the SSH port (example: 2222)
Port 2222
Após fazer as alterações, reinicie o serviço SSH:
sudo systemctl restart ssh
5. Executando Conexões SSH
Depois que o servidor SSH estiver configurado no Ubuntu, você pode se conectar a partir de uma máquina cliente. Este capítulo explica o uso básico do SSH e os métodos de conexão quando a porta é alterada.
Comando Básico de Conexão SSH
Use o comando a seguir para conectar de um cliente SSH ao servidor:
ssh username@server-ip-address
Por exemplo, se o IP do servidor for 192.168.1.10 e o nome de usuário for ubuntu, digite:
ssh ubuntu@192.168.1.10
Na primeira conexão, a impressão digital do servidor será exibida. Digite yes para aceitar e prosseguir.
Conectando Após Alterar o Número da Porta
Se você alterou a porta do SSH — por exemplo, para 2222 — use a opção -p:
ssh -p 2222 ubuntu@192.168.1.10
Conectando com uma Chave Privada
Se a autenticação por chave pública estiver configurada, especifique a chave privada usando a opção -i:
ssh -i ~/.ssh/id_rsa ubuntu@192.168.1.10
Executando Comandos Remotos via SSH
Você pode executar comandos diretamente no servidor remoto sem fazer login interativo:
ssh ubuntu@192.168.1.10 "ls -lah /home/ubuntu"
Essa abordagem permite automação eficiente e operações remotas usando scripts.
Transferindo Arquivos com SCP
Você pode transferir arquivos entre o PC local e o servidor remoto usando SSH.
Local → Remote
scp filename username@server-ip-address:/remote/directory
Exemplo:
scp myfile.txt ubuntu@192.168.1.10:/home/ubuntu/
Remote → Local
scp username@server-ip-address:/remote/filename /local/directory
Exemplo:
scp ubuntu@192.168.1.10:/home/ubuntu/myfile.txt ./
Gerenciando Arquivos com SFTP
Você também pode gerenciar arquivos usando SFTP:
sftp ubuntu@192.168.1.10
Uma vez conectado, você pode executar os seguintes comandos:
ls # List files
cd # Change directory
put filename # Upload a local file to the remote server
get filename # Download a remote file to the local machine
exit # Exit the connection
6. Solucionando Problemas de Conexões SSH
Não é incomum encontrar problemas ao conectar via SSH. Este capítulo descreve problemas comuns e como resolvê‑los.
Causas Comuns de Erros de Conexão SSH e Soluções
Quando uma conexão SSH falha, a causa geralmente é uma das seguintes:
1. O Servidor SSH Não Está em Execução
Primeiro, confirme que o servidor SSH está em execução corretamente:
sudo systemctl status ssh
Solução:
- Se o servidor SSH estiver parado, inicie‑o usando o seguinte comando:
sudo systemctl start ssh
- Para habilitar o SSH a iniciar automaticamente após a reinicialização, execute:
sudo systemctl enable ssh
2. O Firewall (UFW) Está Bloqueando o SSH
Se o UFW (Uncomplicated Firewall) estiver habilitado, o acesso SSH pode ser bloqueado:
Solução:
- Verifique a configuração atual do UFW:
sudo ufw status
- Permita o acesso SSH:
sudo ufw allow ssh
(Se estiver usando uma porta personalizada, execute sudo ufw allow <port-number>)
- Reinicie o UFW:
sudo ufw reload
3. O Número da Porta Foi Alterado
Se o servidor SSH não estiver usando a porta padrão 22, você deve especificar a porta correta ao conectar:
Solução:
- Verifique o número da porta no servidor:
sudo grep Port /etc/ssh/sshd_config
- Especifique a porta correta no cliente:
ssh -p 2222 username@server-ip-address
4. Permissões Incorretas da Chave SSH
Se você estiver usando autenticação por chave pública, permissões incorretas da chave podem impedir a conexão.
Solução:
- Defina permissões para a chave privada:
chmod 600 ~/.ssh/id_rsa
- Defina permissões para a chave pública:
chmod 644 ~/.ssh/authorized_keys
5. Incompatibilidade da Chave do Host
Se a chave do host SSH no servidor mudou, o cliente pode exibir um erro como: “AVISO: A IDENTIFICAÇÃO DO HOST REMOTO MUDOU!”
Solução:
- Remova a chave antiga do host:
ssh-keygen -R <server-ip-address>
- Tente conectar novamente:
ssh username@server-ip-address
6. Verificando Logs do SSH
Para identificar mensagens de erro detalhadas do SSH, verifique os arquivos de log do servidor:
sudo journalctl -u ssh --no-pager | tail -n 20
Para monitorar os logs em tempo real, execute:
sudo tail -f /var/log/auth.log
7. Problemas de Tempo Limite de Conexão SSH
Se as conexões SSH estiverem lentas ou desconectarem inesperadamente, revise os seguintes pontos:
Solução:
- Habilitar KeepAlive Adicione o seguinte ao
~/.ssh/configdo cliente:Host * ServerAliveInterval 60
- Ajustar configurações de tempo limite no servidor Adicione o seguinte ao
/etc/ssh/sshd_confige reinicie o serviço:ClientAliveInterval 60 ClientAliveCountMax 3sudo systemctl restart ssh
Resumo
SSH connection problems typically stem from the following points. In most cases, checking these items resolves the issue:
✅ Verifique se o serviço SSH está em execução
✅ Verifique se o firewall está bloqueando a conexão
✅ Confirme se a porta SSH correta está sendo usada
✅ Garanta que as permissões das chaves SSH estejam configuradas corretamente
✅ Revise os logs do SSH para identificar erros detalhados

7. Melhorando a Segurança do SSH
O SSH é uma ferramenta poderosa de acesso remoto, mas sem medidas de segurança adequadas, pode se tornar um alvo para acesso não autorizado ou ataques de força bruta. Este capítulo explica as configurações recomendadas para reforçar a segurança do SSH.
1. Desativar Autenticação por Senha e Usar Autenticação por Chave Pública
Por padrão, o SSH permite login por senha, o que aumenta o risco de ataques de força bruta. Habilite a autenticação por chave pública e desative a autenticação por senha para melhorar a segurança.
Etapas
- Edite o
sshd_configsudo nano /etc/ssh/sshd_config
- Edite ou adicione as seguintes configurações
PasswordAuthentication no PubkeyAuthentication yes
- Reinicie o serviço SSH
sudo systemctl restart ssh
Após aplicar esta configuração, o SSH aceitará apenas autenticação por chave pública. Certifique‑se de que suas chaves SSH estejam configuradas corretamente com antecedência.
2. Alterar o Número da Porta SSH
Usar a porta padrão do SSH (22) torna os servidores alvos mais fáceis para atacantes. Alterar o número da porta ajuda a reduzir tentativas de acesso não autorizado.
Etapas
- Abra o
sshd_configsudo nano /etc/ssh/sshd_config
- Modifique a linha a seguir (exemplo: altere a porta para 2222)
Port 2222
- Permita a nova porta através do firewall
sudo ufw allow 2222/tcp
- Reinicie o serviço SSH
sudo systemctl restart ssh
- Teste a conexão usando a nova porta
ssh -p 2222 username@server-ip-address
3. Desativar Login como Root
Por padrão, o SSH permite login como root, o que representa um sério risco de segurança. Recomenda‑se permitir acesso SSH apenas através de contas de usuário normais e usar sudo quando privilégios administrativos forem necessários.
Etapas
- Abra o
sshd_configsudo nano /etc/ssh/sshd_config
- Edite a linha a seguir
PermitRootLogin no
- Reinicie o serviço SSH
sudo systemctl restart ssh
4. Prevenir Ataques de Força Bruta com Fail2Ban
Fail2Ban detecta tentativas de login não autorizadas e bloqueia automaticamente endereços IP que excedem um certo número de falhas.
Instalação e Configuração
- Instale o Fail2Ban
sudo apt install fail2ban -y
- Copie o arquivo de configuração padrão
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
- Edite
jail.localsudo nano /etc/fail2ban/jail.local
- Modifique a seção
[sshd][sshd] enabled = true maxretry = 5 bantime = 600 findtime = 600
maxretry: Número de tentativas de login falhadas permitidasbantime: Duração do bloqueio de IP (segundos)findtime: janela de tempo para contar tentativas falhadas (segundos)
- Reinicie o Fail2Ban
sudo systemctl restart fail2ban
- Verifique o status atual do Fail2Ban
sudo fail2ban-client status sshd
Resumo
Para melhorar a segurança do SSH, aplique as seguintes medidas:
✅ Desative a autenticação por senha e use autenticação por chave pública
✅ Altere a porta do SSH para reduzir a exposição a ataques
✅ Desative o login como root para minimizar riscos
✅ Use o Fail2Ban para prevenir ataques de força bruta
8. Perguntas Frequentes (FAQ)
Esta seção aborda perguntas e problemas comuns que surgem ao configurar e usar o SSH.
Q1: Por que o SSH mostra “Connection refused”?
Existem várias causas possíveis para que uma conexão SSH seja recusada.
Principais causas e soluções:
- O serviço SSH não está em execução
sudo systemctl status ssh
Solução: Inicie o serviço se ele estiver parado.
sudo systemctl start ssh
- O firewall (UFW) está bloqueando o SSH
sudo ufw allow ssh sudo ufw enable
- O número da porta SSH foi alterado
Se o SSH usar uma porta personalizada, especifique-a ao conectar.ssh -p 2222 username@server-ip-address
Q2: Como mudar a porta padrão do SSH?
A porta 22 é um alvo comum de ataques, portanto alterá‑la melhora a segurança.
Passos:
- Edite o arquivo de configuração do SSH
sudo nano /etc/ssh/sshd_config
- Modifique a diretiva
PortPort 2222
- Permita a nova porta através do firewall
sudo ufw allow 2222/tcp
- Reinicie o serviço SSH
sudo systemctl restart ssh
Após fazer essas alterações, conecte‑se usando a nova porta:
ssh -p 2222 username@server-ip-address
Q3: O que verificar se a autenticação por chave pública não está funcionando?
Verifique o seguinte se a autenticação por chave SSH falhar:
- Certifique‑se de que a chave pública está corretamente instalada
ls -l ~/.ssh/authorized_keys
Garanta que authorized_keys exista e contenha a chave correta.
- Verifique as permissões dos arquivos
chmod 600 ~/.ssh/authorized_keys chmod 700 ~/.ssh
- Confirme que o SSH permite autenticação por chave pública
sudo nano /etc/ssh/sshd_config
Assegure que as seguintes entradas estejam presentes:
PubkeyAuthentication yes
PasswordAuthentication no
- Reinicie o serviço SSH
sudo systemctl restart ssh
Q4: Como permitir acesso SSH apenas de endereços IP específicos?
Restringir o acesso SSH a IPs específicos aumenta significativamente a segurança.
Método 1: Editar sshd_config
- Abra o arquivo de configuração
sudo nano /etc/ssh/sshd_config
- Adicione uma entrada
AllowUsersAllowUsers username@192.168.1.100
- Reinicie o serviço SSH
sudo systemctl restart ssh
Método 2: Configurar o firewall (UFW)
- Permita acesso de um IP específico
sudo ufw allow from 192.168.1.100 to any port 22
- Negue o acesso dos demais
sudo ufw deny 22
Q5: Como mudar o tempo limite da sessão SSH?
Se sua sessão SSH desconectar após ficar ociosa, modifique as seguintes configurações.
Configurações do cliente
- Adicione o seguinte em
~/.ssh/config:Host * ServerAliveInterval 60
Configurações do servidor
- Edite
sshd_configsudo nano /etc/ssh/sshd_config
- Adicione ou modifique:
ClientAliveInterval 60 ClientAliveCountMax 3
- Reinicie o serviço SSH
sudo systemctl restart ssh
Resumo
Este FAQ cobriu os problemas e soluções mais comuns de SSH. Quando um problema ocorre, sempre revise os logs e as configurações para identificar a causa.
✅ Como resolver problemas de “Connection refused”
✅ Como mudar a porta padrão do SSH e conectar corretamente
✅ Como solucionar falhas de autenticação com chave pública
✅ Como restringir o acesso SSH a endereços IP específicos
✅ Como evitar tempos limite de sessão SSH
9. Conclusão
Este artigo explicou como configurar e usar o SSH no Ubuntu, desde conceitos básicos até práticas avançadas de segurança. Vamos recapitular os pontos principais.
Principais Aprendizados
1. Conceitos Básicos de SSH
- O SSH permite acesso remoto seguro por meio de comunicação criptografada.
- Mais seguro que Telnet ou FTP.
- Os métodos de autenticação incluem autenticação por senha e autenticação por chave pública.
2. Instalando o Servidor SSH
- Instale o OpenSSH via
sudo apt install openssh-server. - Verifique o status do serviço com
systemctl status ssh. - Permita acesso SSH via UFW usando
sudo ufw allow ssh.
3. Configurando o Acesso SSH
- Conecte-se com
ssh username@server-ip-address. - Use autenticação por chave pública para melhorar a segurança.
- Desative a autenticação por senha em
sshd_configse desejar.
4. Solução de Problemas
- Verifique se o SSH está em execução (
systemctl status ssh). - Especifique a porta correta se alterada (
ssh -p 2222 username@IP). - Verifique as permissões da chave em
~/.ssh/authorized_keys.
5. Melhorias de Segurança
- Desative a autenticação por senha e confie em chaves públicas.
- Mude a porta do SSH para reduzir ataques de varredura.
- Use o Fail2Ban para bloquear falhas de login repetidas.
- Restrinja o acesso SSH a endereços IP específicos quando possível.
Recursos Adicionais de Aprendizado
Para aprofundar seu entendimento sobre SSH, explore os recursos a seguir:
📚 Documentação Oficial
🛠 Ferramentas Relacionadas
- PuTTY para acesso SSH no Windows
- Download PuTTY
- MobaXterm para recursos avançados de SSH
- MobaXterm Official Site
🎥 Vídeos Recomendados
- Pesquise no YouTube por “Ubuntu SSH setup” para encontrar tutoriais para iniciantes.
作成した動画を友だち、家族、世界中の人たちと共有…
Próximos Passos
Depois de entender como o SSH funciona, explore usos mais avançados:
✅ Automatizar o gerenciamento de servidores usando Ansible via SSH
- Ideal para gerenciar vários servidores de forma eficiente.
✅ Tunelamento SSH e encaminhamento de portas
- Use o SSH para proteger conexões de desktop remoto ou criar túneis semelhantes a VPN.
✅ Monitorar logs do SSH e melhorar a segurança
- Use ferramentas como
fail2banelogwatchpara observar atividades suspeitas.
Considerações Finais
Obrigado por ler este guia até o final! 🎉
Configurar corretamente o SSH no Ubuntu aumenta significativamente a eficiência e a segurança do gerenciamento remoto.
À medida que você continua aprendendo, explore técnicas avançadas como tunelamento seguro e monitoramento proativo para construir sistemas ainda mais robustos.
Desfrute de uma experiência SSH segura e produtiva! 🖥️🔐

