En mi situación, similar al escenario de @Richard Smith (cuya solución, por cierto, no funcionó), necesito usar diferentes claves para el mismo servidor en diferentes repositorios.
La solución para mí fue la creación de la sesión correctamente con la variable de entorno GIT_SSH_COMMAND
, así:
export GIT_SSH_COMMAND="ssh -o IdentitiesOnly=yes -i ~/.ssh/my-secret-identitiy"
actualización:
Otra cosa a tener en cuenta es que al establecer la variable de entorno correctamente puede ser un alboroto, entonces estoy usando las facilidades de modificación del prompt de comando provistas por cosas como Liquid Prompt of Fish Shell para engancharme al shell y seguir actualizando las variables de entorno de acuerdo con el directorio actual y algunas reglas. Por ejemplo, todos mis proyectos personales que necesitan mi clave SSH personal con Gitlab están bajo ~/Documents/Projects/personal
así que cuando el gancho del shell ejecuta pwd
y encuentra que el directorio actual está bajo esa ruta, establece automáticamente las variables GIT_SSH_COMMAND
según sea necesario.
Esta pregunta se responde en http://superuser.com/questions/232373/tell-git-which-private-key-to-use. –
posible duplicado de [Especifique una clave SSH para git push sin usar ~/.ssh/config] (http: // stackoverflow.com/questions/7927750/specify-an-ssh-key-for-git-push-without-using-ssh-config) –
Posible duplicado de [Especifique la clave SSH privada para usar al ejecutar el comando del shell con o sin Ruby?] (http://stackoverflow.com/questions/4565700/specify-private-ssh-key-to-use-when-executing-shell-command-with-or-without-ruby) – Zaz