As respostas anteriores explicaram adequadamente a maneira de criar um arquivo de configuração para gerenciar várias chaves ssh. Penso que o importante que também precisa ser explicado é a substituição de um nome de host por um nome alternativo ao clonar o repositório .
Suponha que o nome de usuário da sua conta GitHub seja abc1234 . E suponha que o nome de usuário da sua conta pessoal do GitHub seja jack1234
E suponha que você tenha criado duas chaves RSA, ou seja, id_rsa_company e id_rsa_personal . Portanto, seu arquivo de configuração será semelhante a seguir:
# Company account
Host company
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_company
# Personal account
Host personal
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_personal
Agora, quando você estiver clonando o repositório (chamado demo) da conta GitHub da empresa, a URL do repositório será algo como:
Repo URL: git@github.com:abc1234/demo.git
Agora, enquanto estiver fazendo git clone
, você deve modificar a URL do repositório acima como:
git@company:abc1234/demo.git
Observe como o github.com agora é substituído pelo alias "company", conforme definido no arquivo de configuração.
Da mesma forma, você deve modificar o URL do clone do repositório na conta pessoal, dependendo do alias fornecido no arquivo de configuração.