Como especificar a chave privada SSH para usar ao executar o comando shell no Git?
Uma situação bastante incomum talvez, mas eu quero especificar uma chave SSH privada para usar ao executar um comando shell (git) a partir do computador local.
Basicamente, assim:
git clone git@github.com:TheUser/TheProject.git -key "/home/christoffer/ssh_keys/theuser"
Ou ainda melhor (em Ruby):
with_key("/home/christoffer/ssh_keys/theuser") do
sh("git clone git@github.com:TheUser/TheProject.git")
end
Eu vi exemplos de conexão a um servidor remoto com Net::SSH que usa uma chave privada especificada, mas este é um comando local. Isso é possível?
954
3
Algo como isto deve funcionar (sugerido pela orip):
se preferir as subcasas, você poderia tentar o seguinte (embora seja mais frágil):
Git invocará SSH que encontrará seu agente por variável de ambiente; esta, por sua vez, terá a chave carregada.
Alternativamente, configurar
HOME
também pode fazer o truque, desde que você esteja disposto a configurar um diretório que contenha apenas um diretório.ssh
comoHOME
; este pode conter um identity.pub, ou um arquivo de configuração configurando o IdentityFile.Conteúdo do meu_git_ssh_wrapper:
Então você pode usar a chave fazendo:
Você poderia usar a variável de ambiente GIT_SSH. Mas você terá de embrulhar ssh e opções em um script shell.
Veja o manual do git: "Git" na tua concha de comando.