Como utilizar duas contas do Github no mesmo computador (Windows)
Tags: braziliandevs, github, ssh, windows
Published: 2020-08-16 18:30:55

Estudando os básicos do Git/Github eu me deparei com a dificuldade de dar push para um repositório utilizando uma conta diferente da qual eu uso todos os dias para o trabalho.
Você pode estar pensando _"Mas Fabrícia, é só substituir as credenciais globalmente"_. Pensei isso também, mas não funcionou, eu continuei travada por estar com as credenciais incorretas. Não sei bem porque isso aconteceu, mas eu descobri uma forma simples de contornar isso que normalmente não é conhecida/usada por pessoas mais iniciantes no uso do Git.

A solução para o problema é **adicionar chaves SSH** à sua conta do Github e nas próximas linhas eu vou explicar o passo a passo para fazer isso. Para esse tutorial você já deve ter o repositório na sua máquina local com o remoto apontando para o repositório do Github.

###1 - Entrar no diretório do projeto
Bem autoexplicativo, navegue até a pasta do projeto que você quer fazer push com uma conta diferente.

###2 - Criar uma nova chave SSH
Abra o terminal e digite o seguinte:
<pre><code>ssh-keygen -t rsa -C “seu email”</pre></code>
O -t indica o tipo da chave que será gerada (rsa) e -C indica um comentário.
####2.1 - Salvar a sua chave SHH
Após rodar o código acima, você deverá colocar o caminho completo de onde os arquivos das suas chaves (pública e privada) serão salvas.
<pre><code>Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/your_username/.ssh/id_rsa):</pre></code>
Lembre-se de colocar um nome específico para essas chaves para não sobrescrever nenhuma outra chave.
<pre><code>/c/Usuarios/seu_usuario/.ssh/id_rsa_NOME_UNICO</pre></code>
####2.2 - Colocar uma senha (ou não) para sua chave
Após definir onde suas chaves serão salvas, será pedido que você digite uma senha.
<pre><code>Enter passphrase (empty for no passphrase):
Enter same passphrase again:</pre></code>
Você não é obrigado a colocar uma senha, mas é recomendado colocar uma por ser uma camada a mais de segurança.

###3 - Adicionar a sua chave SSH ao seu perfil no Github
Navegue até a localização da sua chave e copie o conteúdo de **id_rsa_NOME_UNICO.pub**, essa é a sua chave pública.
De posse da sua chave SSH, logue no seu perfil do Github e acesse
 **Settings** → **SSH and GPG keys** e adicione a nova chave. É interessante nomear suas chaves de acordo com as máquinas onde elas são usadas, para evitar confusão caso você tenha mais de uma chave salva no seu perfil.

###4 - Adicionar a chave às configurações do repositório local
Navegue até a pasta do repositório e digite no terminal:
<pre><code>git config -e</pre></code>
Esse comando abrirá o seu arquivo git config, que deve ser parecido com esse:
![exemplo do arquivo git config](https://dev-to-uploads.s3.amazonaws.com/i/xbgkcm0ep644j1nhsyzl.png)
Você precisa adicionar o **sshCommand = ssh -i ~/.ssh/id_rsa_NOME_UNICO** dentro de [core] indicando onde está a sua chave privada.
_**OBS**: Caso a url em [remote "origin"] seja o link https do seu repositório, mude para o link SSH, que pode ser obtido aqui:_
![popup do link para copiar o repositório do github, com use SSH destacado](https://dev-to-uploads.s3.amazonaws.com/i/1peb7rmfsm0v470u9f2q.png)
_**OBS2**: Caso o email e o nome não correspondam à conta que será utilizada, modifique isso também diretamente no arquivo ou por meio dos comandos:_
<pre><code>git config user.name "Seu Nome"
git config user.email seu_email@mail.com</pre></code>

###5 - Dancinha da vitória
Seguindo esses passos você agora deve conseguir fazer o push para o seu repositório remoto utilizando uma segunda conta do Github.

![Mulher com os braços abertos em um campo de girassois](https://dev-to-uploads.s3.amazonaws.com/i/dstvkxbwk95bsmrgqg9g.jpg)
*(eu sei que você se sente assim quando algo finalmente dá certo)*