¿Cómo especificar la clave SSH privada que se utilizará al ejecutar el comando shell en Git?
Una situación bastante inusual tal vez, pero quiero especificar una clave SSH privada para utilizar cuando se ejecuta un comando shell (git) desde el equipo local.
Básicamente como esto:
git clone git@github.com:TheUser/TheProject.git -key "/home/christoffer/ssh_keys/theuser"
O incluso mejor (en Ruby):
with_key("/home/christoffer/ssh_keys/theuser") do
sh("git clone git@github.com:TheUser/TheProject.git")
end
He visto ejemplos de conexión a un servidor remoto con Net::SSH que utiliza una clave privada especificada, pero este es un comando local. ¿Es posible?
954
3
Algo como esto debería funcionar (sugerido por orip):
si prefieres subshells, podrías probar lo siguiente (aunque es más frágil):
Git invocará a SSH que encontrará su agente por variable de entorno; éste, a su vez, tendrá cargada la clave.
Alternativamente, el establecimiento de
HOME
también puede hacer el truco, siempre y cuando usted está dispuesto a configurar un directorio que contiene sólo un directorio.ssh
comoHOME
; esto puede contener un identity.pub, o un archivo de configuración ajuste IdentityFile.Contenido de my_git_ssh_wrapper:
A continuación, puede utilizar la clave haciendo:
Puedes utilizar la variable de entorno GIT_SSH. Pero tendrá que envolver ssh y opciones en un script de shell.
Consulte el manual de git:
man git
en su shell de comandos.