Configurar SSH no Windows 11 é a forma mais prática de conectar o Git ao GitHub sem digitar um token a cada operação. O processo cria duas chaves: uma privada, que fica no computador, e uma pública, que você cadastra na sua conta.
O passo a passo abaixo usa o OpenSSH que já acompanha as versões atuais do Windows 11. Você vai gerar uma chave Ed25519, protegê-la com uma frase secreta, ativar o agente SSH, adicionar a chave ao GitHub e testar um repositório real.

O que é SSH e por que ele ajuda no GitHub?
SSH é um protocolo de comunicação criptografado. No GitHub, ele funciona como uma credencial para operações do Git: o computador prova que possui a chave privada correspondente à chave pública cadastrada na conta, sem enviar a chave privada para o serviço.
É parecido com uma fechadura: a chave pública pode ser colocada no GitHub, mas a chave privada precisa continuar protegida no seu computador. Quem obtiver a privada e conseguir usá-la pode acessar os repositórios permitidos por aquela credencial. Por isso, este guia recomenda uma frase secreta — a senha que protege a chave privada.
SSH não substitui a autenticação de dois fatores para entrar no site do GitHub. Ele apenas facilita a autenticação de operações como git clone, git pull e git push.
Antes de começar
- Use o Windows 11 com acesso a uma conta do GitHub.
- Abra o Windows Terminal, o PowerShell ou o Git Bash.
- Tenha o Git instalado se pretende clonar, baixar ou enviar alterações de um repositório.
- Tenha um e-mail já associado à conta do GitHub. Ele será usado apenas como comentário identificador na chave.
O cliente OpenSSH já vem nas versões recentes do Windows 10 e do Windows 11, segundo a documentação da Microsoft. Para conferir se ele está disponível, execute:
ssh -V
Se o comando mostrar uma versão do OpenSSH, você pode continuar. Caso o Windows diga que ssh não foi encontrado, abra Configurações > Sistema > Recursos opcionais > Exibir recursos, procure por Cliente OpenSSH e instale-o.
1. Verifique se já existe uma chave SSH
Não crie outra chave por impulso. Uma chave existente pode estar sendo usada por outro serviço ou computador. No PowerShell, liste a pasta .ssh:
Get-ChildItem $env:USERPROFILE\.ssh
Procure arquivos como id_ed25519 e id_ed25519.pub. O arquivo terminado em .pub é o público; o arquivo sem extensão é o privado. Não abra, envie ou cole o conteúdo da chave privada.
Se a pasta não existir ou não houver uma chave que você reconheça, gere uma nova. Se já houver uma chave usada em outro lugar, escolha um nome diferente no passo seguinte em vez de sobrescrevê-la.
2. Gere uma chave Ed25519 no Windows 11
Execute este comando, trocando o endereço de exemplo pelo e-mail da sua conta do GitHub:
ssh-keygen -t ed25519 -C "seu-email@exemplo.com"
O programa fará algumas perguntas:
- Em Enter file in which to save the key, pressione Enter para usar o caminho padrão, normalmente
C:\Users\SEU_USUARIO\.ssh\id_ed25519. - Em Enter passphrase, crie uma frase secreta longa e fácil de lembrar, mas difícil de adivinhar.
- Digite a mesma frase novamente quando solicitado.
Ao final, serão criados dois arquivos: id_ed25519, a chave privada, e id_ed25519.pub, a chave pública. A documentação do GitHub recomenda Ed25519; RSA com 4096 bits fica como alternativa para sistemas antigos que não aceitam esse algoritmo.
Se o comando perguntar se deve substituir uma chave já existente, responda não e repita a geração usando um nome diferente, por exemplo:
ssh-keygen -t ed25519 -C "seu-email@exemplo.com" -f "$env:USERPROFILE\.ssh\id_ed25519_github"
3. Ative o agente SSH e carregue a chave
O ssh-agent é um serviço que mantém a chave disponível para os programas autorizados, evitando que você digite a frase secreta em toda operação. Para ativá-lo, abra o PowerShell como administrador e execute:
Get-Service -Name ssh-agent | Set-Service -StartupType Manual
Start-Service ssh-agent
Agora feche a janela administrativa, abra um PowerShell normal e adicione a chave privada ao agente:
ssh-add $env:USERPROFILE\.ssh\id_ed25519
Digite a frase secreta quando ela for solicitada. Para conferir se o agente reconheceu a chave, use:
ssh-add -l
Se aparecer uma impressão digital começando por algo como 256 SHA256:, o agente encontrou a chave. Essa impressão digital não é a chave privada e pode ser usada para conferir qual credencial está carregada.
4. Adicione a chave pública à conta do GitHub
Copie somente o arquivo público para a área de transferência. No PowerShell, o comando é:
Get-Content $env:USERPROFILE\.ssh\id_ed25519.pub | Set-Clipboard
Se você criou a chave com outro nome, ajuste o caminho. O conteúdo copiado deve começar com ssh-ed25519 e ficar em uma única linha.
No GitHub, siga este caminho:
- Clique na sua foto de perfil e abra Settings.
- Na seção Access, entre em SSH and GPG keys.
- Clique em New SSH key ou Add SSH key.
- Em Title, use um nome que identifique o computador, como “Notebook Windows 11”.
- Deixe o tipo como Authentication key.
- Cole a chave pública no campo Key e confirme em Add SSH key.
A chave pública pode ser cadastrada no GitHub, mas a privada não. O GitHub informa que chaves DSA novas não são aceitas e que clientes antigos podem ter problemas com assinaturas RSA; por isso, Ed25519 é a escolha mais simples para uma instalação atual.
5. Teste a conexão SSH com o GitHub
No PowerShell, execute:
ssh -T git@github.com
Na primeira conexão, o SSH pode perguntar se você reconhece o servidor. Confira o host exibido e confirme apenas se a conexão foi iniciada para github.com. Depois, o GitHub deve responder com uma mensagem informando que a autenticação foi bem-sucedida, mas que o serviço não oferece acesso shell.
Essa resposta é normal: SSH está sendo usado para autenticar operações do Git, não para abrir um prompt de comandos dentro dos servidores do GitHub.
6. Use a chave em um repositório existente
Verifique como o repositório está conectado:
git remote -v
Se o endereço começar com https://github.com/, troque-o pelo formato SSH abaixo. Substitua os dois nomes pelos dados reais do repositório:
git remote set-url origin git@github.com:USUARIO/REPOSITORIO.git
git remote -v
A saída deve mostrar git@github.com:... nas linhas de busca e envio. A partir daí, git pull e git push usarão a chave SSH. Para um repositório novo, você também pode clonar diretamente com:
git clone git@github.com:USUARIO/REPOSITORIO.git
Se você ainda está montando seu ambiente de programação, veja também o nosso guia para começar a usar o GitHub Copilot no VS Code. São configurações diferentes, mas costumam aparecer na mesma rotina de quem trabalha com código.
Erros comuns e como corrigir
“Permission denied (publickey)”
O GitHub não encontrou uma chave válida para a conta. Confira se a chave pública inteira foi cadastrada, veja as chaves carregadas com ssh-add -l e repita o teste com ssh -T git@github.com. Também confirme se o remoto aponta para o usuário e o repositório corretos.
“Could not open a connection to your authentication agent”
O agente não está em execução na sessão atual. Abra o PowerShell como administrador, rode Start-Service ssh-agent e depois execute ssh-add em uma janela comum.
O Git pede a frase secreta mesmo com o agente ativo
O Git para Windows pode estar usando o ssh.exe incluído no Git Bash, enquanto a chave foi carregada no agente nativo do Windows. Descubra qual cliente está sendo usado com:
where.exe ssh
Se houver conflito, faça o Git usar o OpenSSH do Windows:
git config --global core.sshCommand "C:/Windows/System32/OpenSSH/ssh.exe"
Em uma instalação padrão, esse caminho aponta para o cliente OpenSSH do próprio Windows. Se o problema continuar, feche os terminais abertos, abra uma nova sessão e carregue a chave novamente.
O comando ssh-keygen não foi encontrado
Verifique se o Cliente OpenSSH está instalado nos Recursos opcionais do Windows. Quem usa Git Bash também pode instalar o Git para Windows e executar o mesmo comando por lá, mas vale evitar misturar o agente nativo e o cliente incluído no Git Bash sem configurar qual binário será usado.
Boas práticas para não transformar a chave em problema
- Proteja a chave privada: nunca publique o arquivo sem extensão, não o envie por e-mail e não o coloque em um repositório.
- Use uma chave por computador ou finalidade: assim, perder um notebook não exige trocar a credencial de todos os outros dispositivos.
- Use uma frase secreta: ela reduz o impacto caso alguém copie o arquivo privado.
- Remova chaves antigas: no GitHub, apague a credencial de um computador que foi vendido, perdido ou formatado.
- Confira o remoto antes de enviar código:
git remote -vevita publicar alterações no projeto errado.
FAQ
Preciso instalar um programa para usar SSH no Windows 11?
Em versões atuais, normalmente não. O Windows 11 inclui o cliente OpenSSH, que pode ser executado pelo Windows Terminal ou PowerShell. Se o comando não existir, instale o Cliente OpenSSH em Recursos opcionais.
Posso cadastrar a chave privada no GitHub?
Não. O GitHub recebe apenas a chave pública, normalmente o arquivo terminado em .pub. A chave privada fica no computador e deve ser protegida como uma senha.
SSH deixa o GitHub sem pedir nenhuma senha?
Não necessariamente. A chave pode ter uma frase secreta, e o agente SSH pode solicitá-la quando a credencial ainda não estiver carregada. A vantagem é não precisar usar senha ou token do GitHub em cada operação.
O que fazer se eu usar dois computadores?
Gere uma chave separada para cada computador e dê um nome identificável a cada uma no painel SSH and GPG keys do GitHub. Se um dispositivo for perdido, remova somente a chave correspondente.