SSH & Avanzado 46 visualizações

Como configurar um agente SSH para não digitar a senha da chave toda vez

Ver no WHMCS

Guia rápido: configure o agente SSH e nunca mais digite a senha da chave

Oi! Aqui é a Sensei da GeHost 🧑‍🏫 Se você protege sua chave SSH com uma senha (o que é ótimo, viu — chave sem senha é um risco), já deve ter sentido aquela chatice de digitar a senha toda vez que conecta no servidor ou faz um git push. A boa notícia: existe uma ferramenta feita exatamente pra isso, o agente SSH (ssh-agent). Ele guarda sua chave "destravada" na memória com segurança, e você digita a senha uma única vez por sessão (ou até nunca mais, se guardar no chaveiro do sistema).

Vamos por partes, sem pressa. Este guia serve pra quem acessa hospedagem/servidor via SSH pelo terminal do Linux, macOS ou Windows (WSL).

Dica da Sensei: o agente SSH não elimina a senha da sua chave — ele só evita que você a redigite a cada conexão dentro da mesma sessão do computador. Continue protegendo sua chave privada com senha; isso é uma camada de segurança que vale a pena manter.

Passo 1 — Confirme que você já tem uma chave SSH

Abra o terminal e rode:

ls -la ~/.ssh

Se aparecer um par de arquivos como id_ed25519 e id_ed25519.pub (ou id_rsa / id_rsa.pub), você já tem uma chave. Se não tiver nenhuma, gere uma com:

ssh-keygen -t ed25519 -C "seu-email@exemplo.com"

Quando ele perguntar a senha (passphrase), defina uma — é justamente essa senha que vamos parar de digitar toda hora.

Passo 2 — Ligue o agente SSH

No Linux e no macOS (Terminal padrão)

Na maioria das distribuições modernas o agente já é iniciado automaticamente quando você abre o terminal. Pra verificar se ele está rodando, digite:

echo $SSH_AUTH_SOCK

Se aparecer um caminho (algo como /tmp/ssh-xxxx/agent.xxxx), ótimo, o agente já está de pé. Se vier vazio, inicie manualmente:

eval "$(ssh-agent -s)"

No Windows

Se você usa o WSL (recomendado para trabalhar com SSH no Windows), siga exatamente os mesmos passos do Linux acima, dentro do terminal do WSL. Se você usa PowerShell nativo, o Windows tem seu próprio serviço de agente OpenSSH — você pode habilitá-lo digitando (em um PowerShell como Administrador):

Set-Service ssh-agent -StartupType Automatic
Start-Service ssh-agent

Passo 3 — Adicione sua chave ao agente

Com o agente rodando, é hora de "carregar" sua chave nele:

  1. Rode o comando abaixo (troque pelo nome do arquivo da sua chave privada, sem o .pub):
    ssh-add ~/.ssh/id_ed25519
  2. Ele vai pedir a senha da chave uma única vez.
  3. Pronto! A partir de agora, enquanto essa sessão do terminal/computador estiver aberta, toda conexão SSH que usar essa chave vai passar direto, sem pedir senha de novo.

Pra conferir quais chaves estão carregadas no agente a qualquer momento:

ssh-add -l

Passo 4 — Deixe isso automático (a chave carrega sozinha)

Até aqui, você resolveu o problema "durante esta sessão". Mas se fechar o terminal ou reiniciar o computador, provavelmente vai ter que rodar o ssh-add de novo. Pra automatizar de vez, existem dois caminhos — escolha o que combina com o seu sistema.

Opção A — Configurar no arquivo ~/.ssh/config (recomendado)

Esse arquivo permite dizer ao SSH "sempre que eu conectar em qualquer servidor, carregue e reutilize minha chave automaticamente". Abra (ou crie) o arquivo:

nano ~/.ssh/config

E adicione:

Host *
  AddKeysToAgent yes
  IdentityFile ~/.ssh/id_ed25519

O AddKeysToAgent yes faz o SSH guardar a chave no agente automaticamente na primeira vez que você usá-la — sem precisar rodar ssh-add manualmente.

No macOS, você pode ir além e usar o Chaveiro (Keychain) do sistema, assim a senha fica salva com segurança e sobrevive até depois de reiniciar o Mac. Nesse caso, use:
Host *
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_ed25519

Opção B — Iniciar o agente automaticamente ao abrir o terminal (Linux)

Se no seu Linux o agente não inicia sozinho, adicione este trecho no final do seu ~/.bashrc ou ~/.zshrc:

if [ -z "$SSH_AUTH_SOCK" ]; then
  eval "$(ssh-agent -s)" > /dev/null
  ssh-add ~/.ssh/id_ed25519 2>/dev/null
fi

Assim, todo terminal novo já sobe com o agente ativo e tenta carregar a chave (ele ainda vai pedir a senha na primeira vez do dia, o que é esperado e saudável).

Testando se deu certo

Conecte no seu servidor normalmente:

ssh usuario@seu-servidor

Se a conexão passar direto (sem pedir a senha da chave), o agente está funcionando! Os dados exatos de host/usuário do seu ambiente GeHost você encontra no painel.gehost.com.br, na área do seu plano.

Ficou sem tempo de configurar tudo isso? Sem problemas — é sempre mais seguro digitar a senha a cada conexão do que deixar a chave sem senha "pra ser mais rápido". Configure com calma, e qualquer dúvida durante o processo é só chamar o suporte pelo painel.

Resumindo

  • O agente SSH guarda sua chave destravada na memória da sessão.
  • ssh-add ~/.ssh/sua_chave carrega a chave manualmente.
  • AddKeysToAgent yes no ~/.ssh/config automatiza esse carregamento.
  • No macOS, UseKeychain yes faz a senha persistir entre reinicializações, com segurança.
  • Nunca remova a senha da chave "pra facilitar" — o agente já resolve a comodidade sem abrir mão da segurança.

Prontinho! Agora é só conectar e trabalhar, sem aquele "digite a senha" toda hora. 🚀

Precisa de Ajuda?

Nossa equipe está pronta para resolver suas dúvidas.