No hay no hay una manera _directa de decirle a git
qué clave privada usar, porque se basa en ssh
para la autentificación del repositorio. Sin embargo, todavía hay algunas formas de conseguir tu objetivo:
Opción 1: ssh-agent
Puedes usar ssh-agent
para autorizar temporalmente tu clave privada.
Por ejemplo:
$ ssh-agent sh -c 'ssh-add ~/.ssh/id_rsa; git fetch user@host'
Opción 2: GIT_SSH_COMMAND
Pasa los argumentos ssh usando la variable de entorno GIT_SSH_COMMAND
(Git 2.3.0+).
Por ejemplo:
$ GIT_SSH_COMMAND='ssh -i ~/.ssh/id_rsa -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no' \
git clone user@host
Puedes escribir todo esto en una línea -ignorar $
y dejar fuera el No hay **no hay una manera _directa** de decirle a
gitqué clave privada usar, porque se basa en
ssh` para la autentificación del repositorio. Sin embargo, todavía hay algunas formas de conseguir tu objetivo:
Opción 1: ssh-agent
Puedes usar ssh-agent
para autorizar temporalmente tu clave privada.
Por ejemplo:
$ ssh-agent sh -c 'ssh-add ~/.ssh/id_rsa; git fetch user@host'
Opción 2: GIT_SSH_COMMAND
Pasa los argumentos ssh usando la variable de entorno GIT_SSH_COMMAND
(Git 2.3.0+).
Por ejemplo:
$ GIT_SSH_COMMAND='ssh -i ~/.ssh/id_rsa -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no' \
git clone user@host
Puedes escribir todo esto en una línea -ignorar $
y dejar fuera el .
Opción 3: GIT_SSH
Pasa los argumentos ssh usando la variable de entorno GIT_SSH
para especificar el binario alternativo ssh
.
Por ejemplo:
$ echo 'ssh -i ~/.ssh/id_rsa -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no $*' > ssh
$ chmod +x ssh
$ GIT_TRACE=1 GIT_SSH='./ssh' git clone user@host
Nota: Las líneas anteriores son líneas de comando de shell (terminal) que deberías pegar en tu terminal. Crearán un archivo llamado ssh
, lo harán ejecutable y (indirectamente) lo ejecutarán.
Nota: GIT_SSH
está disponible desde v0.99.4 (2005).
Opción 4: ~/.ssh/config
Utilice el archivo ~/.ssh/config
como se sugiere en otras respuestas para especificar la ubicación de su clave privada, por ejemplo
Host github.com
User git
Hostname github.com
IdentityFile ~/.ssh/id_rsa