Usando múltiplas chaves SSH para diferentes contas Git (pessoal e trabalho) sem dor de cabeça

Se você tem conta pessoal e de trabalho no Git (ou até freelas), já deve ter sofrido com o SSH misturando as chaves.
A boa notícia é que dá pra resolver de dois jeitos: automático por diretório ou via alias de host.

Automático por diretóri…


This content originally appeared on DEV Community and was authored by Tulio Calil

https://unsplash.com/pt-br/fotografias/lote-chave-8fs1X0JFgFE

Se você tem conta pessoal e de trabalho no Git (ou até freelas), já deve ter sofrido com o SSH misturando as chaves.
A boa notícia é que dá pra resolver de dois jeitos: automático por diretório ou via alias de host.

Automático por diretório (requer OpenSSH 7.3+)

Essa é a forma que eu mais gosto. Só de estar dentro da pasta do projeto, o SSH já sabe qual chave usar.
Mas atenção: funciona apenas no OpenSSH 7.3 ou superior e você precisa separar os projetos por pastas (pessoais em uma e profissionais em outra, por exemplo). Verifique sua versão do SSH com:

ssh -V

Agora vamos a estrutura de pastas, essa parte é fundamental, precisamos de uma pasta para cada chave, atualmente eu uso algo como:

projects/ #vai usar a chave pessoal
 - blog
 - estudos
 - urubu_do_pix
 - work/ # daqui pra frente vai usar a chave do trabalho 
   - projectA
   - projectB

Ou seja, tudo do trabalho fica na pasta ‘work’. Vamos fazer com que o SSH use uma chave pra todos os lugares e troque apenas quando estiver na ‘work’.

Edite o arquivo de configuração no do SSH que fica em ~/.ssh/config:

# Configuração padrão, usa a chave pessoal
Host github.com
  AddKeysToAgent yes
  UseKeychain yes   # (se estiver no macOS)
  IdentityFile ~/.ssh/my_key

# Chave para projetos do trabalho
Match exec "[[ $PWD == /home/tulio/projects/work* ]]"
    IdentityFile ~/.ssh/work_key

Lembre de trocar os caminhos, tanto das chaves quanto da pasta work.

Com isso, se você fizer um clone, push ou pull em qualquer lugar diferente da pasta ‘work’, ele vai usar a chave pessoal. Na pasta ‘work’, usa a chave do trabalho. Simples assim.

Alternativa: usando aliases de host

Se a sua versão do SSH não suporta Match exec, dá pra resolver usando aliases.
Nesse caso você cria “atalhos” e aponta o git remote para eles.

Edite o ~/.ssh/config:

# Conta pessoal
Host github.com
    HostName github.com
    User git
    IdentityFile ~/.ssh/my_key

# Conta do trabalho
Host work.github.com
    HostName github.com
    User git
    IdentityFile ~/.ssh/work_key

Aqui você pode ser criativo com o alias, pode usar até algo mais curto, como "w" apenas, sem o github.com, basta lembrar que na hora de clonar você terá que colonar com "w" no lugar do "github.com" (git@w:org/project.git)

E na hora do clone basta você adicionar work antes do github, exemplo:

git clone git@work.github.com:...

Caso ja tenha o projeto clonado basta trocar a URL da origin, você pode fazer assim:
Veja a URL atual do repositorio:

git remote -v

Copie a URL e adicione o work na frente e troque com:

git remote set-url origin git@work.github.com:...

Fechando

Hoje eu uso o esquema automático por diretório porque me poupa tempo e evita erro, mas a versão com alias funciona em qualquer lugar e é à prova de falhas.
De qualquer jeito, o resultado é o mesmo: nunca mais push falhando por causa da chave errada.

Você pode repetir a configuração para usar várias chaves, eu utilizei apenas duas para simplificar.


This content originally appeared on DEV Community and was authored by Tulio Calil


Print Share Comment Cite Upload Translate Updates
APA

Tulio Calil | Sciencx (2025-09-08T15:05:39+00:00) Usando múltiplas chaves SSH para diferentes contas Git (pessoal e trabalho) sem dor de cabeça. Retrieved from https://www.scien.cx/2025/09/08/usando-multiplas-chaves-ssh-para-diferentes-contas-git-pessoal-e-trabalho-sem-dor-de-cabeca/

MLA
" » Usando múltiplas chaves SSH para diferentes contas Git (pessoal e trabalho) sem dor de cabeça." Tulio Calil | Sciencx - Monday September 8, 2025, https://www.scien.cx/2025/09/08/usando-multiplas-chaves-ssh-para-diferentes-contas-git-pessoal-e-trabalho-sem-dor-de-cabeca/
HARVARD
Tulio Calil | Sciencx Monday September 8, 2025 » Usando múltiplas chaves SSH para diferentes contas Git (pessoal e trabalho) sem dor de cabeça., viewed ,<https://www.scien.cx/2025/09/08/usando-multiplas-chaves-ssh-para-diferentes-contas-git-pessoal-e-trabalho-sem-dor-de-cabeca/>
VANCOUVER
Tulio Calil | Sciencx - » Usando múltiplas chaves SSH para diferentes contas Git (pessoal e trabalho) sem dor de cabeça. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2025/09/08/usando-multiplas-chaves-ssh-para-diferentes-contas-git-pessoal-e-trabalho-sem-dor-de-cabeca/
CHICAGO
" » Usando múltiplas chaves SSH para diferentes contas Git (pessoal e trabalho) sem dor de cabeça." Tulio Calil | Sciencx - Accessed . https://www.scien.cx/2025/09/08/usando-multiplas-chaves-ssh-para-diferentes-contas-git-pessoal-e-trabalho-sem-dor-de-cabeca/
IEEE
" » Usando múltiplas chaves SSH para diferentes contas Git (pessoal e trabalho) sem dor de cabeça." Tulio Calil | Sciencx [Online]. Available: https://www.scien.cx/2025/09/08/usando-multiplas-chaves-ssh-para-diferentes-contas-git-pessoal-e-trabalho-sem-dor-de-cabeca/. [Accessed: ]
rf:citation
» Usando múltiplas chaves SSH para diferentes contas Git (pessoal e trabalho) sem dor de cabeça | Tulio Calil | Sciencx | https://www.scien.cx/2025/09/08/usando-multiplas-chaves-ssh-para-diferentes-contas-git-pessoal-e-trabalho-sem-dor-de-cabeca/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.