Atualmente, estou tentando acessar o GitHub para clonar um repositório com SSH.
No entanto, quando insiro o URL para clonar, o servidor trava depois Initialized empty Git repository in /export/home/nathan/myrepo
, da seguinte maneira:
$ git clone [email protected]:v6/myrepo.git
Initialized empty Git repository in /export/home/nathan/myrepo/.git/
ssh-add -l
mostra várias identidades.
2048 <fingerprint> /home/vagrant/.ssh/id_rsa (RSA)
2048 <fingerprint> production-infrastructure.pem (RSA)
Adicionei as chaves públicas das duas opções acima à minha conta do GitHub.
No entanto, quando tento ssh -T [email protected]
, recebo algo como o seguinte:
Hi otheruser1998! You've successfully authenticated, but GitHub does not provide shell access.
Eu não sou otheruser1998
.
Eu acho que o GitHub pode associar a production-infrastructure.pem
chave otheruser1998
, cuja conta já possui essa chave.
Como desativo a production-infrastructure.pem
chave ssh-agent
?
Se isso não funcionar, posso especificar uma chave para o git usar?
Como essas duas chaves são encaminhadas da minha máquina de desenvolvimento local, não posso apenas especificar meu arquivo de chave ~/.ssh/config
, como uma resposta popular a Como saber ao git qual chave privada usar? recomenda.
Também não posso usar ssh-add -d production-infrastructure.pem
para remover a chave, pois, novamente, é necessário especificar o caminho local para um arquivo de chaves: http://www.openbsd.org/cgi-bin/man.cgi/OpenBSD-current/man1/ ssh-add.1
O título da pergunta parece um pouco desajeitado. Por favor edite. Vou levar qualquer ajuda possível para torná-lo mais claro. No entanto, o objetivo final é encerrar a situação que me leva a encontrar esse git clone
bug silencioso , clonar meu repositório e seguir em frente com vida.
Respostas:
Você pode matar o ssh-agent, mas isso impediria que você recarregasse o production-infrastructure.pem (já que você parece não tê-lo disponível localmente) depois que terminar.
Como alternativa, você pode usar a variável de ambiente $ GIT_SSH para especificar o programa que o git deve usar para o ssh. Você precisa criar um novo script de shell com as duas linhas a seguir:
Eu salvaria isso como ~ / bin / githubssh com o modo 555. (Isso é infelizmente necessário porque o git não faz análise de argumento na variável de ambiente GIT_SSH, ele tenta inserir a coisa toda no argv [0] quando executa o Programa SSH.)
Então, quando é hora de fazer o checkout:
Isso definirá a variável de ambiente GIT_SSH apenas para esse comando git.
fonte