Como acessar SSH: guia prático para conectar em servidores Linux

Aprenda como acessar SSH em servidores Linux com segurança: chaves, config, troubleshooting e boas práticas para devs em produção.

SSH (Secure Shell) é o protocolo padrão pra administrar servidores Linux remotos. Se você acabou de provisionar uma VPS ou recebeu credenciais de acesso a um servidor, o primeiro passo é abrir uma sessão SSH — todo o resto (deploy, instalação de pacotes, configuração de serviços) depende disso funcionar.

Este tutorial cobre o caminho completo: conexão inicial com senha, geração e uso de chaves SSH, configuração do arquivo ~/.ssh/config pra simplificar comandos repetitivos, e resolução dos erros mais comuns que aparecem no primeiro acesso. O foco é uso prático em ambientes Linux e macOS, com observações pontuais pra Windows via OpenSSH nativo ou WSL.

Tempo estimado de execução: 15 a 25 minutos, incluindo geração de chaves e ajustes de configuração.

Pré-requisitos

Antes de tentar a conexão, confirme que você tem os dados de acesso do servidor e um cliente SSH disponível na sua máquina local.

O que você precisa

Um servidor com SSH habilitado (porta 22 padrão, aberta no firewall), credenciais de acesso (usuário + senha ou chave) e um terminal com cliente OpenSSH instalado. Em Linux e macOS já vem por padrão. No Windows 10/11, o OpenSSH Client está disponível via Configurações → Aplicativos → Recursos opcionais.

Os dados típicos que você recebe ao contratar uma VPS são:

Endereço IP 203.0.113.42
Usuário root
Porta 22
Senha enviada por e-mail

Guarde esses valores — você vai usá-los nos próximos passos. Se a senha veio por e-mail em texto plano, considere alterá-la na primeira conexão.

Primeira conexão via senha

O comando ssh segue o formato ssh usuario@host -p porta. Pra uma conexão básica com as credenciais do exemplo acima:

01

Abra o terminal local e execute:

ssh [email protected]

Se a porta for diferente de 22, adicione -p:

ssh [email protected] -p 2222

Na primeira conexão, o cliente vai mostrar a fingerprint do host:

The authenticity of host '203.0.113.42 (203.0.113.42)' can't be established.
ED25519 key fingerprint is SHA256:abc123...
Are you sure you want to continue connecting (yes/no/[fingerprint])?

Digite yes e pressione Enter. Essa fingerprint fica salva em ~/.ssh/known_hosts e protege contra ataques man-in-the-middle em conexões futuras.

02

Digite a senha quando solicitado. Note que o terminal não exibe caracteres enquanto você digita — isso é comportamento normal, não bug.

Após autenticar, você vê o prompt do servidor:

root@servidor:~#

Pronto, você está dentro. Pra encerrar a sessão, digite exit ou pressione Ctrl+D.

Não use senha em produção

Acesso por senha é aceitável pro primeiro login, mas não pra rotina. Senhas são vulneráveis a brute force — qualquer servidor com SSH exposto na internet recebe milhares de tentativas por dia. Configure autenticação por chave (próxima seção) e desabilite senha assim que possível.

Autenticação por chave SSH

Chaves SSH usam criptografia assimétrica: você gera um par (chave privada + chave pública), guarda a privada na sua máquina local e envia a pública pro servidor. A autenticação acontece sem nunca transmitir segredos pela rede.

Gerar o par de chaves

01

Na sua máquina local, gere uma chave ED25519 (algoritmo moderno, mais rápido que RSA e considerado seguro):

ssh-keygen -t ed25519 -C "[email protected]"

O comando pergunta onde salvar (padrão: ~/.ssh/id_ed25519) e pede uma passphrase opcional. A passphrase criptografa a chave privada em disco — recomendado, especialmente em notebooks.

O resultado são dois arquivos:

  • ~/.ssh/id_ed25519 — chave privada (nunca compartilhe)
  • ~/.ssh/id_ed25519.pub — chave pública (essa vai pro servidor)
02

Copie a chave pública pro servidor usando ssh-copy-id:

ssh-copy-id [email protected]

Digite a senha do servidor (uma última vez). O comando adiciona sua chave pública em ~/.ssh/authorized_keys no servidor remoto, criando o arquivo se não existir e ajustando as permissões corretamente.

Se ssh-copy-id não estiver disponível (caso típico no Windows), faça manualmente:

cat ~/.ssh/id_ed25519.pub | ssh [email protected] "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
03

Teste a conexão sem senha:

ssh [email protected]

Dessa vez você entra direto, ou é solicitada apenas a passphrase da chave privada (se você definiu uma). A senha do servidor não é mais usada nessa autenticação.

Configurando ~/.ssh/config

Digitar ssh [email protected] -p 2222 -i ~/.ssh/chave_especifica toda vez é cansativo. O arquivo ~/.ssh/config permite criar aliases por servidor.

01

Crie ou edite o arquivo:

nano ~/.ssh/config

Adicione um bloco por servidor:

Host producao
    HostName 203.0.113.42
    User root
    Port 22
    IdentityFile ~/.ssh/id_ed25519

Host staging
    HostName 198.51.100.10
    User deploy
    Port 2222
    IdentityFile ~/.ssh/id_staging

Ajuste as permissões:

chmod 600 ~/.ssh/config
02

Agora a conexão é só:

ssh producao

O cliente lê o config, resolve o alias e aplica todos os parâmetros. Funciona também com scp, rsync e ferramentas que dependem do cliente SSH (como git com remotes SSH).

Reutilizar conexões

Adicione ControlMaster auto, ControlPath ~/.ssh/sockets/%r@%h:%p e ControlPersist 10m no início do ~/.ssh/config (bloco Host *) pra multiplexar conexões. A segunda sessão SSH pro mesmo servidor abre instantaneamente, reaproveitando o túnel da primeira.

Endurecendo o acesso SSH

Com chave funcionando, o próximo passo é fechar o acesso por senha e ajustar o serviço SSH no servidor.

01

Conectado ao servidor, edite a configuração do serviço SSH:

sudo nano /etc/ssh/sshd_config

Ajuste (ou descomente) estas linhas:

PasswordAuthentication no
PermitRootLogin prohibit-password
PubkeyAuthentication yes

prohibit-password permite root via chave mas bloqueia senha — útil em VPS onde o usuário inicial é root. Se você criou um usuário não-root com sudo, prefira PermitRootLogin no.

02

Valide a sintaxe antes de recarregar:

sudo sshd -t

Se não houver saída, está OK. Aplique:

sudo systemctl reload ssh
Mantenha a sessão atual aberta

Não feche o terminal atual antes de testar uma NOVA conexão SSH em outro terminal. Se você cometer erro no sshd_config e fechar a sessão ativa, pode ficar trancado fora do servidor. Sempre teste com sessão paralela.

Verificação

Confirme que tudo funciona como esperado:

ssh -v producao

O modo verbose (-v) mostra cada etapa: leitura do config, negociação de algoritmos, oferta de chaves. Procure por:

debug1: Authentication succeeded (publickey).

Isso confirma que a autenticação foi feita por chave, não por senha. Se aparecer password, alguma coisa não está aplicada.

Do lado do servidor, verifique tentativas recentes:

sudo journalctl -u ssh --since "10 minutes ago"

Você vê linhas tipo Accepted publickey for root from ... port ... ssh2.

Resolução de problemas

Permission denied (publickey)

A chave pública não está em ~/.ssh/authorized_keys no servidor, ou as permissões estão erradas. No servidor:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

Verifique também se a chave correspondente está sendo oferecida pelo cliente — use ssh -v e procure por Offering public key.

Connection refused

O serviço SSH não está rodando, ou o firewall bloqueia a porta. No servidor:

sudo systemctl status ssh
sudo ss -tlnp | grep ssh

Se estiver ativo, confira o firewall (sudo ufw status ou as regras do provedor).

Connection timed out

Geralmente é problema de rede ou IP errado. Teste conectividade básica:

ping 203.0.113.42
nc -zv 203.0.113.42 22

Se nc falhar mas ping funcionar, a porta está bloqueada em algum ponto do caminho.

Host key verification failed

A fingerprint do servidor mudou desde a última conexão (servidor reinstalado, IP reciclado). Remova a entrada antiga:

ssh-keygen -R 203.0.113.42

E conecte novamente — o cliente vai pedir confirmação da nova fingerprint.

Próximos passos

Com SSH funcionando de forma segura, o servidor está pronto pra trabalho real. Algumas direções pra aprofundar:

  • Configure fail2ban pra banir IPs com tentativas excessivas de autenticação.
  • Use mosh em conexões instáveis (mobile, Wi-Fi ruim) — mantém a sessão viva mesmo com mudanças de rede.
  • Aprenda port forwarding (ssh -L e ssh -R) pra acessar serviços internos do servidor sem expô-los à internet.
  • Configure ssh-agent pra carregar a passphrase uma vez por sessão de trabalho.
  • Estude Match blocks no sshd_config pra políticas diferentes por usuário ou rede.

Se você está colocando um projeto em produção e quer evitar dor de cabeça com SSH e firewall mal configurados, uma VPS Hostini já vem com SSH habilitado, IPv4 dedicado e acesso root imediato — basta seguir os passos deste tutorial a partir do e-mail de provisionamento.

Perguntas frequentes

Qual a diferença entre chave RSA e ED25519?

ED25519 é um algoritmo mais novo, baseado em curvas elípticas. Gera chaves menores (cerca de 68 caracteres vs 400+ do RSA), é mais rápido em assinatura/verificação e considerado seguro contra ataques conhecidos. Use ED25519 por padrão; só recorra a RSA-4096 se o servidor for muito antigo e não suportar.

Posso usar a mesma chave SSH em vários servidores?

Sim, a chave pública pode ser copiada pra quantos servidores você quiser — é assim que a maioria das pessoas usa. A chave privada continua só na sua máquina. Mas considere chaves separadas pra contextos sensíveis (produção vs pessoal) pra limitar o impacto caso uma seja comprometida.

Como acessar SSH no Windows sem instalar PuTTY?

Windows 10 e 11 incluem o cliente OpenSSH nativo. Abra o PowerShell ou CMD e use os mesmos comandos `ssh`, `ssh-keygen` e `ssh-copy-id` do Linux. Se não estiver disponível, ative em Configurações → Aplicativos → Recursos opcionais → OpenSSH Client. WSL também é uma alternativa robusta.

O que fazer se eu esquecer a passphrase da chave privada?

Não há como recuperar. A passphrase criptografa o arquivo da chave privada em disco e não tem reset. Você precisa gerar um novo par de chaves e atualizar o `authorized_keys` em todos os servidores onde a chave antiga estava autorizada. Por isso muitos devs usam `ssh-agent` pra digitar a passphrase só uma vez por sessão.

É seguro manter a porta SSH em 22?

Sim, desde que você desabilite autenticação por senha e use chaves. Mudar pra outra porta (security through obscurity) reduz o ruído nos logs de tentativas automatizadas, mas não adiciona segurança real contra atacantes direcionados. O ganho efetivo vem de chaves fortes, fail2ban e usuários não-root.

Como manter a conexão SSH aberta sem desconectar por inatividade?

Adicione `ServerAliveInterval 60` no `~/.ssh/config` do cliente — ele envia um keepalive a cada 60 segundos. Do lado do servidor, em `/etc/ssh/sshd_config`, `ClientAliveInterval 60` e `ClientAliveCountMax 3` têm efeito equivalente. Isso evita desconexões por NAT timeout em conexões residenciais.

Próximos passos Cloud Ryzen com NVMe e proteção DDoS sempre ativa.Coloque em produção numa VPS Hostini →
Esse tutorial foi útil?
Falar no WhatsApp