Eu preciso conectar a vários repositórios git, então eu tenho várias chaves ssh, como adicionar automaticamente?

1

Parece que se eu reiniciar as configurações do meu ssh serão aniquiladas.

Eu segui este tutorial para usar ssh-add para as outras duas chaves que preciso mapear.

Devo executar este comando na minha configuração do bash para que ele seja executado toda vez?

    
por user27449 16.07.2011 / 03:52

1 resposta

4

Normalmente você executaria ssh-keygen uma vez para criar uma única chave privada ssh em ~/.ssh/id_rsa , emparelhada com uma única chave pública correspondente em ~/.ssh/id_rsa.pub . Então você instalaria aquela chave pública em cada uma das máquinas que você precisa para ssh. Por exemplo, se for um repositório do git em uma máquina semelhante ao Unix, você anexaria sua chave pública em ~/.ssh/authorized_keys no diretório inicial da sua conta nesse servidor .

A maneira típica ssh funciona é que você tem um único par de chaves público-privadas que representa você e mantém a chave privada privada, mas instala a chave pública em todas as contas em todos os servidores que você precisa acessar.

Depois disso, você pode usar ssh nessa máquina ou clonar um repo via git clone ssh://... ou qualquer outra coisa, sem precisar digitar uma senha.

Em vez de configurar ssh da maneira típica descrita acima, você gerou dois pares de chaves pública-privada separados, e eles não estão na sua pasta ~/.ssh/ e, portanto, ssh não é capaz de encontrá-los normalmente. Parece que você instalou duas chaves públicas separadas em outros servidores, uma em cada um dos dois servidores de repositório git. Também parece que você ativou ssh-agent e usou ssh-add com argumentos para informar sobre algum local alternativo onde poderia encontrar seus pares de chaves públicas privadas. Portanto, toda vez que você efetuar logout ou reiniciar, ssh-agent será encerrado e, portanto, será necessário executar novamente manualmente ssh-agent e ssh-add .

Esta explicação do que está acontecendo para você parece mais provável para mim do que a ideia de que algo está excluindo ~/.ssh/ cada vez que você reinicia.

Se eu fosse você, escolheria um dos meus dois pares de chaves para ser minha identidade, colocaria esse par em ~/.ssh/ , instalaria a chave pública desse único par em ambos os servidores git repo e não se incomodaria com ssh-agent e ssh-add de todo.

Note, no entanto, que há um passo adicional que você precisa fazer, SE seu nome de usuário nos servidores de repositório git for diferente do seu nome de usuário que você está usando para sua conta local em sua máquina cliente. Você precisa criar um arquivo ~/.ssh/config para permitir que ssh saiba qual nome de usuário usar ao se conectar a essas outras máquinas. O formato é muito simples:

Host gitrepo1.example.com
User myGitRepo1Username
Host gitrepo2.example.com
User myGitRepo2Username
    
por 16.07.2011 / 05:06

Tags