¿Qué es una clave SSH de Git?
Una clave SSH es una credencial de acceso para el protocolo de red SSH (Secure Shell). Este protocolo de red segura con autenticación y cifrado se utiliza para la comunicación remota entre máquinas en una red abierta no segura. SSH se utiliza para la transferencia remota de archivos, la gestión de redes y el acceso remoto al sistema operativo. El acrónimo SSH también se usa para describir un conjunto de herramientas utilizadas para interactuar con el protocolo SSH.
SSH usa un par de claves para iniciar un protocolo de enlace seguro entre partes remotas. El par de claves contiene una clave pública y una clave privada. Los términos "pública" y "privada" pueden resultar confusos, ya que ambos se refieren a claves. Es más fácil imaginar que la clave pública es una "cerradura" y la clave privada, la "llave" que la abre. Entregas la "cerradura" pública a las partes remotas para que cifren o "cierren" los datos. Después, estos datos se abren con la llave "privada" que guardas en un lugar seguro.
Cómo crear una clave SSH
Las claves SSH se generan a través de un algoritmo criptográfico de clave pública. Los más comunes son RSA y DSA. A grandes rasgos, las claves SSH se generan a partir de una fórmula matemática que toma 2 números primos y una variable de inicialización aleatoria para dar como resultado las claves pública y privada. Se trata de una fórmula unidireccional que permite que la clave pública se pueda derivar de la clave privada, pero la privada no se pueda derivar de la pública.
Las claves SSH se crean mediante una herramienta de generación de claves. El conjunto de herramientas de línea de comandos SSH incluye una herramienta de generación de claves. La mayoría de los proveedores de alojamiento Git ofrecen guías sobre cómo crear claves SSH.
Generar una clave SSH en Mac y Linux
Los sistemas operativos OS X y Linux tienen aplicaciones de terminal modernas y muy completas que se lanzan con el conjunto de herramientas SSH instalado. El proceso para crear una clave SSH es el mismo en ambos sistemas operativos.
1. Ejecuta el código siguiente para empezar a crear una clave:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
Material relacionado
Chuleta de Git
VER LA SOLUCIÓN
Aprende a usar Git con Bitbucket Cloud
Este comando creará una nueva clave SSH usando el correo electrónico como etiqueta.
2. A continuación, se te pedirá que introduzcas un archivo en el que se guardará la clave.
Puedes especificar una ubicación de archivo o pulsar Intro para aceptar la ubicación de archivo predeterminada.
> Enter a file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]
3. La siguiente indicación te solicitará una frase de contraseña segura. Una frase de contraseña añadirá una capa adicional de seguridad a la clave SSH y se solicitará cada vez que se utilice dicha clave. Si alguien obtiene acceso al ordenador en el que se almacena la clave privada, también podría tener acceso a cualquier sistema que use esa clave. El hecho de añadir una frase de contraseña a la clave evitará que esto ocurra.
> Enter passphrase (empty for no passphrase): [Type a passphrase]
> Enter same passphrase again: [Type passphrase again]
En este punto, se habrá generado una nueva clave SSH en la ruta de archivo especificada anteriormente.
4. Añade la nueva clave SSH a ssh-agent
ssh-agent es otro programa que forma parte del conjunto de herramientas SSH y su misión es guardar las claves privadas. Es como si fuera un llavero. Además de guardar las claves privadas, también interviene en las solicitudes para firmar solicitudes SSH con las claves privadas, de modo que estas nunca se transfieran de manera no segura.
Antes de añadir la nueva clave SSH a ssh-agent, comprueba que ssh-agent se esté ejecutando. Para ello, ejecuta el código siguiente:
$ eval "$(ssh-agent -s)"
> Agent pid 59566
Una vez que ssh-agent se esté ejecutando, el siguiente comando añadirá la nueva clave SSH al agente SSH local.
ssh-add -K /Users/you/.ssh/id_rsa
La nueva clave SSH ya está registrada y lista para usar.
Generar una clave SSH en Windows
Los entornos Windows no tienen un shell de Unix predeterminado estándar. Será necesario instalar programas de shell externos para tener una experiencia completa de generación de claves. La opción más sencilla es utilizar Git Bash. Una vez instalado Git Bash, se pueden seguir los mismos pasos para Linux y Mac en el shell de Git Bash.
Subsistema de Windows para Linux
Los entornos Windows modernos ofrecen un subsistema de Windows para Linux. Este subsistema ofrece un shell de Linux completo dentro de un entorno Windows tradicional. Si hay un subsistema de Linux disponible, se pueden seguir los mismos pasos descritos anteriormente para Linux y Mac en el subsistema de Windows para Linux.
Resumen
Las claves SSH se usan para autenticar conexiones seguras. Si sigues esta guía, podrás crear y empezar a usar una clave SSH. Git es capaz de usar claves SSH en lugar de la autenticación tradicional mediante contraseña al enviar o incorporar cambios a repositorios remotos. Las soluciones Git alojadas modernas como Bitbucket admiten la autenticación mediante clave SSH.
Compartir este artículo
Tema siguiente
Lecturas recomendadas
Consulta estos recursos para conocer los tipos de equipos de DevOps o para estar al tanto de las novedades sobre DevOps en Atlassian.