Posso ter várias chaves SSH para o mesmo host e usuário?

4

Eu tenho duas contas no Bitbucket e uma chave SSH para cada uma. É assim que meu ~/.ssh/config se parece:

Host bitbucket.org
  User git
  IdentityFile ~/.ssh/bitbucket/account1

Host bitbucket.org
  User git
  IdenfityFile ~/.ssh/bitbucket/account2

O problema é que o agente SSH parece ser incapaz de lidar com duas chaves para o mesmo host ao mesmo tempo e eu tenho que remover um deles para poder usar o outro.

Existe uma solução alternativa?

    
por szx 28.03.2013 / 22:43

2 respostas

8

Pelo que parece, o Bitbucket tem uma entrada de DNS curinga no lugar; qualquer subdomínio aleatório ( *.bitbucket.org ) será resolvido para o mesmo servidor (es) que bitbucket.org .

$ host bitbucket.org
bitbucket.org has address 207.223.240.182
bitbucket.org has address 207.223.240.181
$ host random.bitbucket.org
bitbucket.org has address 207.223.240.182
bitbucket.org has address 207.223.240.181
$ host clearlynotasubdomain.bitbucket.org
bitbucket.org has address 207.223.240.182
bitbucket.org has address 207.223.240.181

Por causa disso, você pode configurar diferentes entradas no seu ~/.ssh/config com diferentes nomes de host:

Host project1.bitbucket.org
  User git
  IdentityFile ~/.ssh/bitbucket/account1

Host project2.bitbucket.org
 User git
 IdenfityFile ~/.ssh/bitbucket/account2

Na verdade, eu arriscaria um palpite de que o Bitbucket tem esse curinga para esse propósito exato.

    
por 28.03.2013 / 22:50
7

Você pode criar dois aliases SSH separados, por exemplo

Host bitbucket1
  Hostname bitbucket.org
  User git
  IdentityFile ~/.ssh/bitbucket/account1

Host bitbucket2
  Hostname bitbucket.org
  User git
  IdentityFile ~/.ssh/bitbucket/account2

Contanto que o seu IdentityFile não seja o padrão (veja minha pergunta aqui ), então você pode usar esses aliases para selecionar a qual conta se conectar.

    
por 28.03.2013 / 22:48

Tags