← Voltar ao blog
SSHGitHubWindows

Como configurar o SSH no Windows para usar com o GitHub

Gere uma chave SSH, cadastre a pública no GitHub e pare de digitar senha a cada push. Passo a passo no Windows, com os erros mais comuns.

MA
Allen87Data Engineer
· 4 min de leitura
Painel de terminal com o comando ssh-keygen -t ed25519 sobre fundo escuro

O SSH (Secure Shell) permite acessar servidores e conversar com o GitHub por uma conexão criptografada, sem digitar usuário e senha a cada git push. Neste guia, você cria uma chave SSH no Windows, cadastra no GitHub e testa a conexão. Se ainda não instalou e configurou o Git, comece pelo artigo anterior.

Como funciona, em uma frase

Você gera um par de chaves: a privada, que fica só no seu computador, e a pública, que você entrega ao GitHub. Quem tem a pública consegue conferir que você tem a privada, sem que ela jamais saia da sua máquina.

Atenção: a chave que vai para o GitHub é sempre a de extensão .pub. O arquivo sem extensão é a chave privada: nunca copie, envie ou publique o conteúdo dele.

1. Gere a chave

Abra o Git Bash (ou o PowerShell) e digite:

ssh-keygen -t ed25519 -C "seuemail@exemplo.com"
  • -t ed25519 escolhe o algoritmo atualmente recomendado: as chaves são menores e mais rápidas que as RSA, que eram o padrão em guias antigos.
  • -C é só um comentário para você reconhecer a chave depois. O e-mail é uma boa opção.

O comando faz duas perguntas:

  1. Onde salvar: pressione Enter para aceitar o padrão (C:\Users\SeuUsuário\.ssh\id_ed25519).
  2. Passphrase: é uma senha que protege a chave. Recomendo definir uma: se alguém copiar o arquivo, ele não serve sem a senha. Para não digitá-la toda hora, use o passo seguinte.

Ao final, a pasta .ssh terá dois arquivos: id_ed25519 (privada) e id_ed25519.pub (pública).

Se o seu guia ou sistema ainda exigir RSA, use ssh-keygen -t rsa -b 4096 -C "seuemail@exemplo.com". Os arquivos terão o nome id_rsa e id_rsa.pub.

2. Carregue a chave no ssh-agent

O ssh-agent guarda a chave desbloqueada na memória, e assim você digita a passphrase uma só vez por sessão. No Windows, ele vem desativado. Abra o PowerShell como administrador e execute:

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

Depois, em um terminal comum, adicione a chave:

ssh-add $env:USERPROFILE\.ssh\id_ed25519

3. Copie a chave pública

Mostre o conteúdo do arquivo .pub e copie tudo, da primeira à última letra:

cat ~/.ssh/id_ed25519.pub

No PowerShell, o comando equivalente é Get-Content $env:USERPROFILE\.ssh\id_ed25519.pub. Ele começa com ssh-ed25519 e termina com o seu comentário.

4. Cadastre a chave no GitHub

  1. No GitHub, clique na sua foto, no canto superior direito, e escolha Settings.
  2. No menu lateral, abra SSH and GPG keys.
  3. Clique em New SSH key.
  4. Em Title, dê um nome que identifique o computador (por exemplo, "Notebook pessoal").
  5. Em Key type, mantenha Authentication Key, e cole a chave pública em Key.
  6. Clique em Add SSH key. O GitHub pode pedir a sua senha para confirmar.

5. Teste a conexão

ssh -T git@github.com

Na primeira vez, o SSH pergunta se você confia no servidor e mostra uma impressão digital (fingerprint). Confira se ela bate com a lista oficial do GitHub e responda yes.

Se tudo estiver certo, você verá algo como:

Hi seuusuario! You've successfully authenticated, but GitHub does not provide shell access.

Essa mensagem é o sucesso esperado: o GitHub reconheceu a sua chave, e só não oferece um terminal.

6. Baixe um repositório

No GitHub, abra um repositório seu, clique em Code, escolha a aba SSH e copie o endereço, que tem este formato:

git@github.com:seuusuario/nome-do-repositorio.git

Na pasta onde ficam os seus projetos, abra o Git Bash e execute:

git clone git@github.com:seuusuario/nome-do-repositorio.git

Se o repositório for baixado sem pedir senha de conta, a configuração está funcionando.

Se algo der errado

  • Permission denied (publickey): o GitHub não reconheceu a chave. Confira se você colou o conteúdo do arquivo .pub (e não o da privada), se o ssh-agent está rodando e se a chave foi adicionada com ssh-add -l.
  • ssh-add diz que o agente não está em execução: repita o passo 2 em um PowerShell como administrador.
  • Mais de uma chave: se você tem chaves para outros serviços, use um arquivo ~/.ssh/config para indicar qual usar em cada host.

Boas práticas

  • Use uma chave por computador, para poder revogar só a de um aparelho perdido.
  • Defina uma passphrase e mantenha o ssh-agent.
  • Nunca versione, envie ou cole a chave privada em lugar nenhum.
  • Revise de tempos em tempos as chaves em Settings → SSH and GPG keys e remova as que não usa mais.
MA
Allen87 Data Engineer & Data Analyst

Escrevo sobre Power BI, engenharia de dados e IA aplicada. Veja o perfil completo, os 66 dashboards Power BI publicados e o GitHub.