Clonar un repositorio o una rama con clave SSH en Git
- ¿Qué es SSH?
- ¿Por qué clonar Git con clave SSH?
- Usar una clave SSH para clonar un repositorio en Git
- Ampliar Git Clone SSH con opciones
SSH Git Clone proporciona una forma segura de clonar repositorios remotos. Este tutorial muestra el método completo para clonar Git con clave SSH: cómo generar una clave SSH, configurar SSH en Git y clonar Git usando una clave SSH.
También mostramos algunas opciones útiles para ampliar la función: clonar solo una rama, clonar en un directorio elegido o clonar solo algunas commits para repositorios grandes.
¿Qué es SSH?
SSH o Secure Shell Protocol es un protocolo de red para usar servicios seguros en una red insegura. Utiliza un par de claves públicas y privadas: solo usted accede a su clave privada mientras envía su clave pública al servicio que desea usar.
Los datos cifrados con su clave pública solo se pueden abrir con su clave privada y viceversa.
¿Por qué clonar Git con clave SSH?
SSH Git Clone proporciona una manera fácil de clonar de forma segura repositorios remotos en redes públicas inseguras.
Si clona Git con una clave SSH, no tiene que volver a escribir las contraseñas cada vez para identificarse en el servidor remoto. Una vez que un servidor autentica un agente SSH, recuerda los detalles: no debe volver a ingresar una clave SSH cada vez.
Generar un par de claves SSH
Generamos un par de claves pública-privada SSH con el comando ssh key-gen
.
ssh key-gen
Le pedirá que ingrese una frase de contraseña para asegurar el acceso a sus claves en la máquina de su cliente; puede optar por dejarlo en blanco o ingresar su frase de contraseña favorita.
Consejo profesional: No se mostrarán caracteres cuando escriba la frase de contraseña. Esto es para ocultar la longitud de su frase de contraseña y agregar más seguridad.
Consejo profesional 2: escriba su frase de contraseña en algún lugar. Si lo olvida, no podrá recuperar su acceso.
Nos quedamos con los valores predeterminados para el comando ssh key-gen
aquí, pero también podemos pasar diferentes opciones: el algoritmo de cifrado que queremos (por ejemplo, ed2559), una etiqueta, una ubicación específica para guardar las claves.
Comprobar el par de claves SSH guardado
Comprobamos si nuestras claves SSH se generan y guardan correctamente.
ls -al ~/.ssh
Las claves se almacenan en la carpeta .ssh
de su máquina. El archivo id_rsa
contiene la clave privada, mientras que id_rsa.pub
contiene su clave pública.
Si ve estos dos archivos en el resultado, ha creado y guardado con éxito un par de claves SSH.
Agregue la clave SSH al agente SSH
Lanzamos el agente SSH como un proceso en segundo plano.
eval "$(ssh-agent -s)"
Vemos que el agente se ejecuta como el proceso en segundo plano 970
. Añadimos la clave privada SSH al agente SSH.
ssh-add ~/.ssh/id_rsa
El agente confirma que ha añadido la clave privada con el mensaje Identidad añadida: <ruta_a_clave_privada
.
Agregar clave pública a la cuenta remota de GitHub
Copie la clave pública en el portapapeles.
clip < ~/.ssh/id_rsa.pub
Consejo profesional: Copie siempre la clave PÚBLICA
. NUNCA comparta su clave PRIVADA
con NADIE.
- Vaya a su cuenta
GitHub
. - Haz clic en
Imagen de perfil
. - Elija
Configuración
en el menú desplegable.
- Haga clic en
Claves SSH y GPG
en la columna de la izquierda.
- Haga clic en
Nueva clave SSH
en la parte superior derecha.
- Agregue una descripción y pegue la clave
PUBLIC
en el campoKey
.
Ahora ha identificado con éxito a su agente SSH con su cuenta de GitHub.
Pruebe su conexión SSH a GitHub
Probamos la conexión SSH a GitHub.
ssh -T git@github.com
El mensaje confirma que se ha autenticado correctamente.
Usar una clave SSH para clonar un repositorio en Git
A continuación, clonamos nuestro repositorio remoto con SSH.
- Copie la URL SSH de su repositorio
En tu repositorio en GitHub
, haz clic en el botón verde Código
en la parte superior derecha.
Haga clic en SSH
para mostrar su URL SSH. Copie esta URL SSH.
- Git Clone SSH en la Terminal Git
Clone el control remoto usando SSH en la terminal Git.
git clone <remote_repo_ssh_url>
El <remote_repo_ssh_url>
es la URL que copió arriba.
Ha clonado con éxito un repositorio en Git usando claves SSH.
Ampliar Git Clone SSH con opciones
Es posible que desee un tipo específico de clon para su caso de uso. Puede extender el clon de Git a través de SSH con algunas opciones.
- Git Clone SSH solo una rama específica
Para clonar solo una rama usando claves SSH:
git clone --branch <branch_to_clone> <remote_repo_ssh_url>
Esto es muy útil en el caso de grandes repositorios. Para ahorrar tiempo y espacio en su máquina local, es posible que desee clonar solo la rama en la que trabaja o solo algunas ramas de interés.
- Git Clone usando la clave SSH en una ubicación específica
Es posible que desee clonar en una carpeta en particular para mantener bien organizada la estructura de su directorio local.
Para clonar en una ubicación específica:
git clone <remote_repo_ssh_url> <specific_location_local>
- Clonación superficial de Git con clave SSH: clonar solo unas pocas commits
Es posible que desee reducir el tiempo de clonación o ahorrar espacio en el disco local en caso de repositorios grandes. Puede hacerlo simplemente clonando un conjunto seleccionado de las últimas commits.
Para clonar solo algunas commits recientes:
git clone --depth=<n> <remote_repo_ssh_url>
Aquí <n>
es el número de commits recientes que desea clonar.
Por ejemplo, si n = 2
, clonará solo los dos últimos compromisos.