Clonar un repositorio o una rama con clave SSH en Git

Ankit Raj Goyal 30 enero 2023
  1. ¿Qué es SSH?
  2. ¿Por qué clonar Git con clave SSH?
  3. Usar una clave SSH para clonar un repositorio en Git
  4. Ampliar Git Clone SSH con opciones
Clonar un repositorio o una rama con clave SSH en Git

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

generar claves ssh

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

verificar claves 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)"

lanzar agente ssh

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

agregar clave privada sshagent

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.

  1. Vaya a su cuenta GitHub.
  2. Haz clic en Imagen de perfil.
  3. Elija Configuración en el menú desplegable.

configuración de github

  1. Haga clic en Claves SSH y GPG en la columna de la izquierda.

seleccione las claves ssh y gpg

  1. Haga clic en Nueva clave SSH en la parte superior derecha.

nuevo clic de tecla ssh

  1. Agregue una descripción y pegue la clave PUBLIC en el campo Key.

pegar sshkey público en github

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

probar conexión ssh

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.

  1. 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.

copiar url ssh

  1. 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.

git clonar ssh

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.

  1. 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>

rama específica de git clon

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.

  1. 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>

ubicación específica del clon de git

  1. 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.

git clon superficial ssh

Artículo relacionado - Git Clone