Quando alguém vai me adicionar em algum repositório no GitHub, não tem erro: colocam meu nome de usuário victor-torres e é sucesso!

Mas quando alguém precisa me adicionar num repositório no Bitbucket, principalmente quando esse alguém é uma empresa, que te fornece uma conta de e-mail com o domínio dela, por exemplo, aí fica um pouquinho mais complicado.

Digo isso porque você não pode associar uma mesma chave SSH a mais de uma conta no Bitbucket (o que até faz sentido), então fica um pouco chato pra clonar os repositório e fazer push das modificações. Não é mesmo? Não!

Dá pra resolver isso fácil, fácil. Basta criar uma outra chave SSH, que será exclusiva para essa outra conta.

ssh-keygen -t rsa -b 4096 -C "nome@empresa.com"

Esse comando vai criar a chave pública e privada e quando ele te perguntar onde salvar os arquivos, você escolhe algo diferente do nome padrão, id_rsa. Pode ser algo que identifique melhor a chave, por exemplo nome-empresa. Não esqueça de proteger sua chave com uma senha para aumentar um pouco a segurança.

Enter a file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]

Agora vamos fazer o pulo do gato, vamos configurar a chave para ser usada com um domínio específico em ~/.ssh/config:

Host bitbucket.org-empresa
	HostName bitbucket.org
	User git
	IdentityFile ~/.ssh/nome-empresa

Percebam que a gente colocou um traço e o nome do domínio da empresa que a gente tem a conta de e-mail! Toda vez que bater esse host a gente vai traduzir em bitbucket.org, como seria normalmente, e vamos sempre usar a chave SSH nome-empresa que a gente acabou de criar.

E como faz pra clonar um repositório agora? Digamos que você faria normalmente assim:

git clone git@bitbucket.org:empresa/repositorio.git

Agora você adiciona aquele traço e o nome de domínio da empresa que a gente definiu nos passos anteriores:

git clone git@bitbucket.org-empresa:empresa/repositorio.git

O restante das operações permanece do mesmo jeito. Pronto, chega de problemas ou desculpas na hora de usar múltiplas contas com o git.

E aí, curtiu?

Referência: Generating a new SSH key and adding it to the ssh-agent