Hoy os voy a enseñar cómo podeís crear una clave RSA para utilizar en tus proyectos GITLAB https://gitlab.com/
Primero vamos a la consola de Ubuntu (se puede usar WSL si utilizas Windows)
ssh-keygen -t rsa -b 4096 -C "email@example.com"
Indica dentro de «email@example.com» el email de la cuenta de Gitlab.
Nos pedirá un nombre para el fichero y una contraseña (si no ponemos contraseña, no nos la pedirá al utilizar la clave)
Una vez generada, editamos el .pub que ha creado en el mismo directorio. Copiamos el contenido y lo pegamos en la página de Gitlab.
Pulsamos en perfil > Preferencias > Claves SSH
Después añadimos la clave (Recuerda copiarla entera desde ssh-rsa hasta tu e-mail incluido):
Ahora la ponemos en una carpeta que sepamos dónde está y para utilizarla con la consola usamos este comando:
Recuerda añadir los permisos de lectura a la clave:
chmod 400 config/git/key
- Para clonar:
git clone repositorio(git) --config core.sshCommand="ssh -i config/git/key/"
- Para hacer un pull:
GIT_SSH_COMMAND='ssh -i ../config/git/key' git pull origin master'
También puedes añadir la clave RSA directamente al proyecto global (https://docs.gitlab.com/ee/user/ssh.html)
Clave RSA para generar PULL remoto en Gitlab
Para poder hacer un PULL remoto, necesitamos una clave RSA de GITLAB. Para generarla hacemos lo siguiente:
Ir a tu usuario y seleccionar Claves SSH
- Genera una clave RSA local:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
Cuando solicite el nombre de la clave indica:
.ssh/id_rsa
Esto generará una clave privada y una clave pública en la ruta especificada.
- Agrega la clave pública en GitLab:
- Copia el contenido de la clave pública (
cat ~/.ssh/id_rsa.pub
) a tu portapapeles. - Abre GitLab y navega a tu perfil > configuraciones > claves SSH.
- Haz clic en «Agregar clave SSH».
- Dale un nombre a la clave (por ejemplo, «Mi clave SSH de GitLab»).
- Pega el contenido de la clave pública en el campo «clave».
- Haz clic en «Agregar clave».
- Agrega la clave privada en tu máquina local:
- Copia la clave privada (
cat ~/.ssh/id_rsa
) a un archivo local (por ejemplo,gitlab_rsa
). - Asigna permisos restringidos a la clave privada (
chmod 400 gitlab_rsa
) para evitar que otros usuarios puedan leerla. - Agrega la clave privada a tu agente SSH (
ssh-add gitlab_rsa
).
Si el comando ssh-add no ha funcionado puedes utilizar este comando:
sudo ssh-agent sh -c 'ssh-add .ssh/gitlab_rsa'
Ahora deberías poder hacer pull
sin ingresar el nombre de usuario y la contraseña cada vez.
Para asignar al repositorio GIT que funcione por clave SSH, tienes que poner el siguiente comando (lo incluyo en el Pipeline, pero puedes hacerlo a mano y omitirlo).
git remote set-url origin git@gitlab.com:<usuario-proyecto>/<nombre-proyecto>.git
Si la clave no funciona, podemos renombrarla a ./.ssh/id_rsa
Si la clave funciona con root, debemos copiar la clave al directorio /ro
Ingeniero en Informática, Investigador, me encanta crear cosas o arreglarlas y darles una nueva vida. Escritor y poeta. Más de 20 APPs publicadas y un libro en Amazon.