Como verificar várias chaves id_rsa no Ubuntu antes do git pull

1

Eu tenho duas chaves id_rsa diferentes, que são as seguintes:

/home/ubuntu/.ssh/id_rsa_1 
/home/ubuntu/.ssh/id_rsa_2

Eu adicionei ambos em ssh, e o resultado de ssh-add -l é o seguinte:

4096 cb:c2:9e:06:d7:e4:16:e3:dc:9b:c4:df:2f:58:30:82 /home/ubuntu/.ssh/id_rsa_1 (RSA)
4096 bd:a1:0f:c2:bc:4d:6f:43:0a:15:0b:39:ce:0d:08:54 /home/ubuntu/.ssh/id_rsa_2 (RSA)

Agora, quando eu tento puxar do meu repo, ele deve funcionar usando id_rsa_2. Mas isso não acontece.

No entanto, se eu adicionar o id_rsa_2 primeiro, o que dá o seguinte resultado em ssh-add -l:

4096 cb:c2:9e:06:d7:e4:16:e3:dc:9b:c4:df:2f:58:30:82 /home/ubuntu/.ssh/id_rsa_2 (RSA)
4096 bd:a1:0f:c2:bc:4d:6f:43:0a:15:0b:39:ce:0d:08:54 /home/ubuntu/.ssh/id_rsa_1 (RSA)

começa a funcionar.

Eu não entendo qual alteração devo fazer para que ele seja verificado nos dois arquivos id_rsa (independentemente de qual foi adicionado primeiro).

Qualquer ajuda será muito apreciada. Obrigado.

[ Atualização para esclarecimentos ]: O erro que recebo quando não funciona é o seguinte:

git remote show origin_ssh

ERROR: Repository not found.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

Então, basicamente diz que eu não tenho direitos de acesso.

Aqui é onde meu origin_ssh aponta:

git remote -v

origin_ssh      [email protected]:TestRepoOne/api.git (fetch)
origin_ssh      [email protected]:TestRepoOne/api.git (push)

O código a seguir reproduz meu erro:

ssh-add -D
ssh-add ~/.ssh/id_rsa_1
ssh-add ~/.ssh/id_rsa_2

E o código a seguir resolve o erro [para este repositório git específico]:

ssh-add -D
ssh-add ~/.ssh/id_rsa_2
ssh-add ~/.ssh/id_rsa_1

Então, basicamente funciona somente quando o id_rsa_2 é adicionado primeiro. [ Nota para esclarecimentos : adicionei id_rsa_2 no meu repositório remoto do github]

    
por Kshitij Mittal 30.06.2016 / 15:17

1 resposta

3

Parece que você está procurando uma maneira de garantir que a chave id_rsa_2 seja usada ao conectar-se ao GitHub, enquanto usa id_rsa_1 para outras coisas.

Edite ~/.ssh/config e adicione o seguinte:

Host github.com             
    HostName github.com
    User git
    IdentityFile /home/ubuntu/.ssh/id_rsa_2

Isso garantirá que as conexões com o github.com usem a chave especificada.

Atualização: Para usar chaves diferentes para repos diferentes com o mesmo nome de usuário, use o seguinte no seu arquivo de configuração ssh:

Host repo1.github.com
    HostName github.com
    User git
    IdentityFile /home/ubuntu/.ssh/id_rsa_1

Host repo2.github.com
    HostName github.com
    User git
    IdentityFile /home/ubuntu/.ssh/id_rsa_2

Você precisará atualizar os controles remotos em ./git/config para cada repo:

 [remote "origin"]
    url = "ssh://[email protected]/username/repo1.git"

e

 [remote "origin"]
    url = "ssh://[email protected]/username/repo2.git"

Fonte: link

    
por amc 30.06.2016 / 16:29