Árbol de páginas

Estás viendo una versión antigua de esta página. Ve a la versión actual.

Comparar con el actual Ver el historial de la página

« Anterior Versión 2 Actual »

Uso de claves SSH

Si se desea usar conexiones a git autenticadas pero sin almacenar usuario y contraseña en local y por supuesto evitando tener que poner cada vez que operamos la contraseña, estamos necesitando conexiones con autenticación por clave pública.

Lo normal es que ya tengamos o nos generemos un par de claves y las importemos en gitlab para que nos reconozca por este método.


NOTA: si la clave privada fué generada con un password, cada operación que la requiera nos va a pedir ese password. Esto son buenas noticias en materia de seguridad.


Uso implícito de las claves SSH

Cada invocación al comando git, siempre que usemos urls "git....", intentara usar la pareja de claves "default" de SSH. Si nos conectamos desde diferentes lugares podemos crear diferentes pares claves en cada PC o duplicar la pareja en todos esos equipos. 


Uso explicito de una clave SSH

Si necesitamos usar una clave diferente de la default podemos usar la capacidad que nos da el fichero $HOME/.ssh/config o indicar en cada ocasión la clave SSH para git con la siguiente fórmula (ejemplo para "pull)


GIT_SSH_COMMAND="ssh -i $HOME.ssh/id_rsa__específica"  git pull



Adición de nueva clave SSH

Accedemos a nuestro perfil 



Navegamos hasta que nos permite "Add new key"



Pegamos la clave pública en la caja de texto


Cada clave asimétrica RSA / DSA que usamos en SSH tiene un fichero con la parte privada y otro con la parte pública. Pegamos aquí el contenido íntegro de la clave pública. De esta manera, gitlab puede reconocernos porque soloi nosotros vamos a presentar una firma realizada con la parte privada (a buen recaudo).



Problemas ocasionados por múltiples claves SSH

Uso del fichero .ssh/config

Poner en el fichero $HOME/.ssh/config un bloque como el siguiente para que a ese servidor siempre vaya con la clave deseada. Así puedes volver a "git pull" sin indicar la variable GIT_SSH_COMMAND

Host gitlab.com
    User jhidalgo
    HostName gitlab.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa_favoritagitlab


Clave explítica en variable de entorno

Indicamos la ruta hacia clave en el propio comando

GIT_SSH_COMMAND="ssh -i $HOME/.ssh/id_rsa_favoritagitlab"  git pull


Esto vale para todos los comandos de git.

Depurando el problema

Además usando el GIT_SSH_COMMAND podemos poner "-vv" para depurar lo que esté pasando con las credenciales.


GIT_SSH_COMMAND="ssh -vv -i $HOME/.ssh/id_rsa_favoritagitlab"  git pull


Si se observa la salida, vemos la ruta de las claves que ofrece para autenticarse en el servidor.

  • Sin etiquetas