Como Configurar Múltiplas Contas GitHub com SSH em Uma Máquina
Diferenças Entre SSH e HTTPS
Segurança
HTTPS envia IDs e tokens (senhas) via SSL/TLS. Embora seguro, fundamentalmente, eles ainda ficam expostos no caminho da rede, mesmo que bem embalados.
SSH usa chaves assimétricas (infraestrutura de chave pública). Há uma chave privada e uma chave pública; a chave privada fica apenas no seu computador e nunca é exposta na rede. É estruturalmente mais seguro que HTTPS.
Para usar uma analogia: se HTTPS é uma porta muito forte, SSH é não ter porta alguma. Se não há porta, não há como entrar.
Porém, mesmo SSH não é 100% seguro. Não existe 100% de segurança em TI.
Conveniência
Com HTTPS, você tem o incômodo de fazer login/logout do GitHub ao commitar com contas diferentes.
Com SSH, se você escrever os rótulos corretamente no arquivo de configuração, pode usar livremente múltiplas contas sem fazer logout.
Configuração SSH do GitHub
1. Gerar Chaves SSH (Separar por Conta)
Gere as chaves especificando claramente o caminho e nome do arquivo para não misturar com chaves existentes.
# Para Conta A (especifique caminho e nome)
ssh-keygen -t ed25519 -C "[email protected]" -f ~/.ssh/id_github_A
# Para Conta B
ssh-keygen -t ed25519 -C "[email protected]" -f ~/.ssh/id_github_BNota: Você pode pressionar Enter para pular a Passphrase ou incluir uma. Se incluída, vai perguntar toda vez que fizer git push (pode ser automatizado para perguntar uma vez via configurações).
2. Escrever Arquivo de Configuração SSH
Diga ao computador qual chave (IdentityFile) trazer dependendo do endereço de conexão (Host).
# Abrir arquivo config
vim ~/.ssh/config# Digite o seguinte conteúdo (Defina o nome do Host como um alias conveniente)
# Configurações da Conta A
Host github.com-A
HostName github.com
User git
IdentityFile ~/.ssh/id_github_A
# Configurações da Conta B
Host github-B
HostName github.com
User git
IdentityFile ~/.ssh/id_github_B3. Registrar Chave Pública no GitHub
Cole o conteúdo da chave pública (.pub) na página de configurações de cada conta (Settings > SSH and GPG keys).
# Copie a saída e registre em cada conta
cat ~/.ssh/id_github_A.pub
cat ~/.ssh/id_github_B.pub
Cuidado: Você deve dar ao GitHub o conteúdo do .pub! O arquivo sem .pub é sua chave privada.
4. Configuração de Endereço Remoto (Núcleo)
Ao conectar a um repositório, você deve usar o alias do Host definido no Config em vez de github.com.
- Método existente:
[email protected]:User/repo.git - Método multi-conta:
git@[AliasDoHost]:User/repo.git
# Exemplo: Ao conectar com Conta B
git remote set-url origin git@github-B:UserB/nome-repo.gitLog
- • 2026-01-20: create