- 1 1. Introdução
- 2 2. Configuração Básica do SSH
- 3 3. Melhorando a Segurança do SSH
- 4 Resumo
- 5 4. Configuração Avançada de SSH
- 6 Resumo
- 7 5. Solucionando Problemas de SSH
- 8 Resumo
- 9 6. FAQ (Perguntas Frequentes)
- 9.1 6.1 Como Evitar Timeouts no SSH?
- 9.2 6.2 O Que Fazer Se Eu Esquecer Minha Senha SSH?
- 9.3 6.3 Como Usar SSH no Windows?
- 9.4 6.4 Como Configurar SSH no Ubuntu WSL (Subsistema do Windows para Linux)?
- 9.5 6.5 Quais Medidas de Segurança Adicionais Devo Tomar?
- 9.6 6.6 Como Monitorar os Logs do SSH em Tempo Real?
- 9.7 6.7 Como Tornar o SSH Mais Conveniente?
- 10 Resumo
- 11 Artigos Relacionados
1. Introdução
Configurar o SSH no Ubuntu é essencial para gerenciar servidores remotos. SSH (Secure Shell) é um protocolo que fornece comunicação criptografada segura, amplamente usado para acesso remoto a servidores, execução de comandos e transferências de arquivos.
Neste guia, abordaremos tudo, desde a instalação básica até configurações avançadas de segurança para o SSH no Ubuntu.
1.1 Por que Configurar o SSH no Ubuntu?
1.1.1 O que é SSH?
SSH (Secure Shell) é um protocolo projetado para comunicação segura em uma rede. É comumente usado para fazer login em servidores remotos, transferir arquivos e criar túneis (encaminhamento de portas). Ao contrário de protocolos tradicionais como Telnet ou FTP, o SSH criptografa toda a comunicação, tornando-a altamente segura.
1.1.2 Quando Você Precisa do SSH no Ubuntu?
O SSH é útil para gerenciamento remoto em diversos cenários, como:
- Gerenciamento de servidores em nuvem: serviços de nuvem como AWS, GCP e Vultr utilizam SSH para acesso remoto a servidores.
- Operações remotas em ambiente LAN: acessar servidores internos ou máquinas de desenvolvimento via SSH para trabalho remoto.
- Gerenciamento de dispositivos IoT: controlar remotamente dispositivos embarcados como Raspberry Pi.
Por padrão, o SSH está desativado no Ubuntu. Para usá‑lo, você deve instalá‑lo e configurá‑lo manualmente.
2. Configuração Básica do SSH
Para usar o SSH no Ubuntu, você precisa instalar o servidor SSH (OpenSSH) e configurá‑lo corretamente. Esta seção cobre a instalação, configurações básicas, configuração de firewall e como conectar ao seu 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
Por padrão, o Ubuntu não vem com um servidor SSH pré‑instalado. Use o comando a seguir para instalá‑lo:
sudo apt update && sudo apt install -y openssh-server
Esse comando atualiza a lista de pacotes e instala o servidor OpenSSH.
2.1.3 Iniciando e Habilitando o Servidor SSH
Depois de instalado, inicie o servidor SSH e habilite‑lo para iniciar na inicialização.
sudo systemctl enable --now ssh
A opção enable garante que o SSH seja iniciado automaticamente quando o sistema operacional for iniciado.
2.1.4 Verificando o Status do SSH
Para verificar se o servidor SSH está em execução, use:
systemctl status ssh
Se você vir uma saída semelhante à seguinte, o SSH está funcionando corretamente:
● 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 aparecer inactive (dead) ou failed, inicie o serviço manualmente:
sudo systemctl start ssh
2.2 Configurando o Firewall (UFW)
O Ubuntu fornece o ufw (Uncomplicated Firewall) para gerenciamento simples de firewall. Você precisa configurar o UFW para permitir conexões SSH.
2.2.1 Verificando o Status do UFW
Confira o status atual do firewall usando:
sudo ufw status
Exemplo de saída (se o UFW estiver desativado):
Status: inactive
Exemplo de saída (se o UFW estiver ativado):
Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
2.2.2 Permitindo Tráfego SSH
Para permitir conexões SSH na porta padrão 22, execute:
sudo ufw allow ssh
Alternativamente, especifique a porta explicitamente:
sudo ufw allow 22/tcp
2.2.3 Habilitando o UFW
Se o UFW estiver desativado, habilite‑lo com:
sudo ufw enable
Antes de habilitar o UFW, certifique‑se de que o SSH está permitido, caso contrário você pode se bloquear.
2.2.4 Verificando as Configurações do UFW
Confira se as regras do firewall foram aplicadas corretamente:
sudo ufw status verbose
Exemplo de saída:
Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
22/tcp (v6) ALLOW Anywhere (v6)
Se você vir isso, o SSH está permitido através do firewall.
2.3 Conectando ao SSH
Uma vez que o servidor SSH esteja em execução, você pode conectar de um PC cliente.
2.3.1 Conectando do Linux/macOS
No Linux ou macOS, abra um terminal e execute:
ssh username@server-ip-address
Exemplo:
ssh user@192.168.1.100
Na primeira conexão, você pode ver um aviso de segurança como este:
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 e pressione Enter para prosseguir.
2.3.2 Conectando do Windows
No Windows, você pode usar **PowerShell** ou **PuTTY** para conectar via SSH. Usando PowerShell O Windows 10 e posteriores incluem um cliente SSH no PowerShell. Conecte com:
ssh username@server-ip-address
Usando PuTTY
- Baixe e instale o PuTTY do site oficial .
- Abra o PuTTY e insira o endereço IP do servidor em
Host Name (or IP address). - Defina
Connection typecomoSSHe clique emOpen. - Insira seu nome de usuário e senha para conectar.
3. Melhorando a Segurança do SSH
O SSH é uma ferramenta poderosa para acesso remoto, mas deixá-lo com configurações padrão pode representar riscos de segurança. Atacantes frequentemente visam servidores SSH usando ataques de força bruta ou varredura de portas. Para criar um ambiente SSH mais seguro, é essencial aplicar configurações de segurança adequadas.
3.1 Desabilitando o Login como Root
Por padrão, o Ubuntu pode permitir login como root via SSH. Como a conta root tem privilégios completos do sistema, é um alvo comum para atacantes. Desabilitar o login como root e usar uma conta de usuário regular em vez disso melhora significativamente a segurança.
3.1.1 Passos de Configuração
- Edite o arquivo de configuração do SSH
/etc/ssh/sshd_config.sudo nano /etc/ssh/sshd_config
- Encontre a linha a seguir e altere para
PermitRootLogin no.PermitRootLogin no
- Salve o arquivo e reinicie o serviço SSH.
sudo systemctl restart ssh
- Verifique se a configuração foi aplicada.
sudo grep PermitRootLogin /etc/ssh/sshd_config
Se a saída mostrar PermitRootLogin no, a configuração foi aplicada com sucesso.
3.2 Desabilitando a Autenticação por Senha e Habilitando a Autenticação por Chave Pública
Usar autenticação por chave pública é muito mais seguro do que depender de autenticação por senha. Com autenticação por chave pública, você não precisa inserir uma senha, reduzindo o risco de ataques de força bruta.
3.2.1 Gerando um Par de Chaves SSH
No seu PC local, gere um par de chaves SSH:
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa
Isso criará dois arquivos:
- Chave privada (
id_rsa) → **Mantenha isso no seu PC local (nunca compartilhe publicamente)**. - Chave pública (
id_rsa.pub) → **Copie isso para o servidor**.
3.2.2 Copiando a Chave Pública para o Servidor
Use o comando a seguir para copiar sua chave pública para o servidor:
ssh-copy-id username@server-ip-address
3.2.3 Desabilitando a Autenticação por Senha
Edite o arquivo de configuração do SSH:
sudo nano /etc/ssh/sshd_config
Encontre a linha a seguir e altere para:
PasswordAuthentication no
Reinicie o SSH para aplicar as alterações:
sudo systemctl restart ssh
3.3 Restringindo o Acesso SSH a Usuários Específicos
Para melhorar a segurança, você pode limitar o acesso SSH a usuários específicos.
3.3.1 Passos de Configuração
- Abra o arquivo de configuração do SSH.
sudo nano /etc/ssh/sshd_config
- Adicione a linha a seguir, especificando os usuários permitidos.
AllowUsers user1 user2
- Reinicie o SSH para aplicar as alterações.
sudo systemctl restart ssh
3.4 Alterando a Porta do SSH
A porta SSH padrão (22) é frequentemente visada por atacantes. Alterá-la para uma porta não padrão pode reduzir o risco de ataques automatizados.
3.4.1 Passos de Configuração
- Abra o arquivo de configuração do SSH.
sudo nano /etc/ssh/sshd_config
- Encontre a linha a seguir e altere-a para uma porta personalizada (por exemplo,
2200).Port 2200
- Salve o arquivo e reinicie o SSH.
sudo systemctl restart ssh
3.4.2 Atualizando Configurações do Firewall
Depois de mudar a porta SSH, permita a nova porta através do UFW:
sudo ufw allow 2200/tcp
Verifique as configurações:
sudo ufw status
3.5 Prevenindo Ataques de Força Bruta com Fail2Ban
Fail2Ban é uma ferramenta que detecta tentativas de login SSH falhas e bloqueia temporariamente o endereço IP atacante.
3.5.1 Instalando o Fail2Ban
sudo apt install fail2ban -y
3.5.2 Criando um Arquivo de Configuração
Copie o arquivo de configuração padrão:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Edite o arquivo de configuração:
sudo nano /etc/fail2ban/jail.local
Modifique a seção SSH da seguinte forma:
[sshd]
enabled = true
port = 2200
maxretry = 3
findtime = 600
bantime = 3600
3.5.3 Reiniciando o Fail2Ban
Reinicie o Fail2Ban para aplicar as alterações:
sudo systemctl restart fail2ban
3.5.4 Verificando a Lista de Banimentos
Para verificar quais IPs estão banidos:
sudo fail2ban-client status sshd
Resumo
Nesta seção, cobrimos aprimoramentos essenciais de segurança SSH, incluindo:
- Desativar login como root
- Desativar autenticação por senha e habilitar autenticação por chave pública
- Restringir o acesso SSH a usuários específicos
- Alterar a porta SSH
- Usar o Fail2Ban para bloquear ataques de força bruta
Ao implementar essas medidas, você pode criar um ambiente SSH mais seguro.
4. Configuração Avançada de SSH
Depois de configurar a segurança do SSH, você pode aproveitar configurações avançadas para melhorar a usabilidade e a segurança. Esta seção cobre o gerenciamento do ssh.socket no Ubuntu 22.10 e posteriores, tunelamento SSH (encaminhamento de portas), configuração de múltiplas portas SSH e restrição de acesso SSH a endereços IP específicos.
4.1 Usando ssh.socket no Ubuntu 22.10 e Posteriores
A partir do Ubuntu 22.10, o gerenciamento do serviço SSH pode mudar de ssh.service para ssh.socket. Isso permite que o SSH inicie dinamicamente quando uma solicitação de conexão é recebida, reduzindo o uso de recursos.
4.1.1 Verificando o Status do ssh.socket
Para verificar se o ssh.socket está habilitado, execute:
sudo systemctl status ssh.socket
Exemplo de saída (se habilitado):
● 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 Habilitando ou Desabilitando o ssh.socket
Se o ssh.socket estiver desabilitado, habilite-o com:
sudo systemctl enable --now ssh.socket
Para voltar ao ssh.service tradicional, desabilite o ssh.socket e habilite o ssh.service em vez disso:
sudo systemctl disable --now ssh.socket
sudo systemctl enable --now ssh.service
4.2 Tunelamento SSH (Encaminhamento de Portas)
O tunelamento SSH permite a transmissão segura de dados entre um servidor remoto e um PC local, contornando redes externas.
4.2.1 Encaminhamento de Porta Local
Útil para acessar bancos de dados remotos ou servidores web com segurança.
Exemplo: Conectando a um servidor MySQL remoto (porta 3306) a partir do seu PC local
ssh -L 3306:localhost:3306 username@server-ip-address
4.2.2 Encaminhamento de Porta Remota
Expõe um serviço local a um servidor remoto através do SSH.
Exemplo: Encaminhando um servidor web local (porta 80) para a porta 8080 em um servidor remoto
ssh -R 8080:localhost:80 username@server-ip-address
4.2.3 Encaminhamento de Porta Dinâmica
Transforma o SSH em um proxy SOCKS para navegação anônima na web.
Exemplo: Criando um proxy SOCKS na porta local 1080
ssh -D 1080 username@server-ip-address
4.3 Ouvindo em Múltiplas Portas SSH
Por padrão, o SSH escuta em uma porta (porta 22). Configurar múltiplas portas permite flexibilidade de acesso.
4.3.1 Etapas de Configuração
- Edite o arquivo de configuração do SSH.
sudo nano /etc/ssh/sshd_config
- Adicione várias entradas de porta.
Port 22 Port 2200
- Reinicie o SSH.
sudo systemctl restart ssh
- Permita a nova porta no firewall.
sudo ufw allow 2200/tcp
4.4 Restringindo o Acesso SSH a Endereços IP Específicos
Para melhorar a segurança, você pode limitar o acesso SSH a endereços IP específicos.
4.4.1 Configurando /etc/hosts.allow
Permita o acesso SSH apenas de determinados endereços IP editando:
sudo nano /etc/hosts.allow
Adicione a linha a seguir (substitua 192.168.1.100 pelo endereço IP permitido):
sshd: 192.168.1.100
4.4.2 Configurando /etc/hosts.deny
Para bloquear todos os outros IPs por padrão:
sudo nano /etc/hosts.deny
sshd: ALL
Isso garante que apenas os IPs listados em hosts.allow possam acessar o SSH.
Resumo
Esta seção abordou configurações avançadas de SSH, incluindo:
- Gerenciamento do
ssh.socketno Ubuntu 22.10 e posteriores - Uso de tunelamento SSH (encaminhamento de portas) para conexões seguras
- Escuta em múltiplas portas SSH
- Restrição do acesso SSH a IPs específicos
Aplicar essas configurações melhora a segurança e a usabilidade do SSH.
5. Solucionando Problemas de SSH
Mesmo com a configuração correta, podem surgir problemas de SSH. Esta seção oferece soluções para problemas comuns de SSH.
5.1 Não é Possível Conectar ao SSH
Se você receber um erro Connection refused ou de tempo limite, verifique o seguinte.
5.1.1 O Serviço SSH Não Está em Execução
Verifique o status do serviço SSH:
sudo systemctl status ssh
Solução:
- Se
Active: inactive (dead)oufailed, reinicie o SSH.sudo systemctl restart ssh
- Habilite o SSH para iniciar automaticamente.
sudo systemctl enable ssh
5.1.2 O Firewall Está Bloqueando o SSH
Certifique-se de que o SSH está permitido no UFW:
sudo ufw status
Solução: Se o SSH não estiver permitido:
sudo ufw allow 22/tcp
Se estiver usando uma porta personalizada:
sudo ufw allow 2200/tcp
5.2 Erros de Autenticação
Se o SSH rejeitar tentativas de login, verifique o seguinte:
5.2.1 Nome de Usuário ou Senha Incorretos
Garanta que está usando o nome de usuário correto:
ssh username@server-ip-address
5.2.2 Problemas com Autenticação por Chave Pública
Verifique se sua chave pública está corretamente armazenada em ~/.ssh/authorized_keys.
cat ~/.ssh/authorized_keys
5.2.3 Permissões Incorretas
Assegure que o diretório e os arquivos do SSH tenham as permissões corretas:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
Resumo
Esta seção abordou problemas comuns de SSH e suas soluções, incluindo:
- Verificar se o SSH está em execução
- Garantir que o firewall não esteja bloqueando o SSH
- Corrigir problemas de autenticação
Use estas etapas de solução de problemas para resolver rapidamente problemas de conexão SSH.
6. FAQ (Perguntas Frequentes)
Esta seção trata de perguntas comuns relacionadas ao SSH e oferece soluções para melhorar sua experiência com SSH mantendo a segurança.
6.1 Como Evitar Timeouts no SSH?
Se as conexões SSH se desconectarem após um período de inatividade, tente as seguintes configurações.
6.1.1 Configuração no Lado do Servidor
Edite /etc/ssh/sshd_config e adicione:
ClientAliveInterval 60
ClientAliveCountMax 3
Reinicie o SSH para aplicar as alterações:
sudo systemctl restart ssh
6.1.2 Configuração no Lado do Cliente
Modifique o arquivo de configuração SSH local ~/.ssh/config:
Host *
ServerAliveInterval 60
ServerAliveCountMax 3
6.2 O Que Fazer Se Eu Esquecer Minha Senha SSH?
6.2.1 Se Você Tiver Acesso Físico ao Servidor
- Inicie o modo de recuperação via menu GRUB.
- Redefina a senha com o seguinte comando:
passwd username
- Reinicie o sistema.
6.2.2 Se Você Não Puder Acessar o Servidor Fisicamente (por exemplo, VPS na Nuvem)
- Use o recurso de console do provedor de nuvem para acessar o servidor.
- Configure a autenticação por chave SSH em vez de depender de senhas.
6.3 Como Usar SSH no Windows?
6.3.1 Usando o PowerShell
O Windows 10 e versões posteriores incluem um cliente SSH integrado. Abra o PowerShell e execute:
ssh username@server-ip-address
6.3.2 Usando o PuTTY
- Baixe e instale o PuTTY .
- Insira o IP do servidor em
Host Name (or IP address). - Selecione
SSHcomo tipo de conexão e clique emOpen. - Faça login com seu nome de usuário e senha.
6.4 Como Configurar SSH no Ubuntu WSL (Subsistema do Windows para Linux)?
Para habilitar o SSH no WSL, siga estas etapas.
6.4.1 Instalando o Servidor SSH
sudo apt update && sudo apt install openssh-server
6.4.2 Configurando o SSH
Edite /etc/ssh/sshd_config e habilite a autenticação por senha:
PasswordAuthentication yes
Como o WSL não usa systemd por padrão, inicie o SSH manualmente:
sudo service ssh start
6.5 Quais Medidas de Segurança Adicionais Devo Tomar?
6.5.1 Instalando o Fail2Ban
Previna ataques de força bruta instalando o Fail2Ban:
sudo apt install fail2ban -y
Edite o arquivo de configuração /etc/fail2ban/jail.local:
[sshd]
enabled = true
port = 22
maxretry = 3
findtime = 600
bantime = 3600
Reinicie o Fail2Ban:
sudo systemctl restart fail2ban
6.5.2 Alterando a Porta do SSH
Modifique /etc/ssh/sshd_config para alterar a porta padrão do SSH:
Port 2200
Reinicie o SSH e atualize as configurações do firewall:
sudo ufw allow 2200/tcp
6.6 Como Monitorar os Logs do SSH em Tempo Real?
Para visualizar os logs do SSH em tempo real, use:
sudo journalctl -u ssh -f
Para verificar logs anteriores:
sudo cat /var/log/auth.log | grep ssh
6.7 Como Tornar o SSH Mais Conveniente?
6.7.1 Usando .ssh/config para Login Fácil
Salve conexões SSH usadas com frequência em ~/.ssh/config:
Host myserver
HostName 192.168.1.100
User user
Port 2200
IdentityFile ~/.ssh/id_rsa
Agora você pode conectar com:
ssh myserver
6.7.2 Usando ssh-agent para Evitar a Entrada Repetida de Senha
Execute:
eval $(ssh-agent -s)
ssh-add ~/.ssh/id_rsa
Isso permite conexões SSH sem digitar a frase secreta toda vez.
Resumo
Esta seção forneceu respostas às perguntas comuns relacionadas ao SSH, abordando:
- Prevenindo timeouts de SSH
- Recuperando de uma senha esquecida
- Usando SSH no Windows e WSL
- Aplicando medidas de segurança adicionais
- Monitorando logs de SSH
- Tornando o uso do SSH mais conveniente
Seguindo estas dicas, você pode criar um ambiente SSH seguro e eficiente para gerenciamento remoto de servidores.
Artigos Relacionados
1. Introdução Ao usar SSH no Ubuntu, você pode acessar e gerenciar seu servidor ou PC remotamente de forma segura. Este […]


![Como Verificar, Alterar e Trocar Versões do Python no Ubuntu [Guia Completo]](https://www.linux.digibeatrix.com/wp-content/uploads/2025/02/36b84d2ec91b0993972a29a44e5757c7-375x214.webp)
![Como Verificar a Versão do CUDA no Ubuntu [Guia de Comando Fácil]](https://www.linux.digibeatrix.com/wp-content/uploads/2025/03/7ad0e7fe124605dc3cd746565dc1d108-375x214.webp)