É possível utilizar duas contas do GitHub na mesma máquina sem fazer login e logout. A solução é criar uma chave SSH para cada conta e configurar aliases no arquivo ~/.ssh/config.
1. Criar uma chave para cada conta
Por exemplo:
ssh-keygen -t ed25519 -C "email@exemplo.com" -f ~/.ssh/id_ed25519_conta2
A chave pública (.pub) deve ser adicionada à conta correspondente no GitHub.
2. Configurar ~/.ssh/config
O arquivo ~/.ssh/config define qual chave SSH deve ser utilizada para cada conta.
Exemplo:
# Conta 1
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519
IdentitiesOnly yes
# Conta 2
Host conta2
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_conta2
IdentitiesOnly yes
O valor definido em Host é um alias local. Você pode escolher qualquer nome, como conta2, github-work ou github-company.
3. Usar a conta correta
A conta principal continua usando github.com:
git clone git@github.com:usuario/repositorio.git
Para a segunda conta, substitua github.com pelo alias definido no ~/.ssh/config:
git clone git@conta2:usuario/repositorio.git
O mesmo vale para o remote de um repositório existente:
git remote set-url origin git@conta2:usuario/repositorio.git
4. Testar as contas
ssh -T git@github.com
Testa a primeira conta.
ssh -T git@conta2
Testa a segunda.
Cada alias fará o SSH utilizar automaticamente a chave definida no IdentityFile.
Resumo
github.com → ~/.ssh/id_ed25519 → Conta 1
conta2 → ~/.ssh/id_ed25519_conta2 → Conta 2
Não é necessário fazer login ou logout do GitHub. O alias utilizado na URL do Git determina qual configuração e qual chave SSH serão usadas.