# Claves SSH

## ¿Qué es una CLAVE SSH?

Una clave SSH es una credencial de acceso para el protocolo de red SSH (shell seguro). Este protocolo de red seguro autenticado y cifrado se utiliza para la comunicación remota entre máquinas en una [red abierta no segura](https://whatismyipaddress.com/unsecured-network) . 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 utiliza para describir un conjunto de herramientas que se utilizan para interactuar con el protocolo SSH.

SSH utiliza 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 privada. La nomenclatura privada vs pública puede ser confusa ya que ambas se llaman claves. Es más útil pensar en la clave pública como un "candado" y la clave privada como la "clave". Le da el "bloqueo" público a partes remotas para cifrar o "bloquear" los datos. Luego, estos datos se abren con la clave 'privada' que tiene en un lugar seguro.

### Cómo crear una clave SSH <a href="#installing-git-lfs" id="installing-git-lfs"></a>

Las claves SSH se generan mediante un [algoritmo criptográfico de clave pública](https://en.wikipedia.org/wiki/Public-key_cryptography) , siendo los más comunes [RSA](https://en.wikipedia.org/wiki/RSA_\(cryptosystem\)) o [DSA](https://en.wikipedia.org/wiki/Digital_Signature_Algorithm) . A un nivel muy alto, las claves SSH se generan a través de una fórmula matemática que toma 2 números primos y una variable semilla aleatoria para generar la clave pública y privada. Esta es una fórmula unidireccional que garantiza que la clave pública se pueda derivar de la clave privada pero que la clave privada no se pueda derivar de la clave pública.

Las claves SSH se crean mediante una herramienta de generación de claves. El paquete de herramientas de línea de comandos SSH incluye una herramienta keygen. La mayoría de los proveedores de alojamiento de git ofrecen guías sobre [cómo crear una clave SSH.](https://confluence.atlassian.com/bitbucketserver/creating-ssh-keys-776639788.html)

### Genere una clave SSH en Mac y Linux

Los sistemas operativos OsX y Linux tienen aplicaciones de terminal modernas e integrales que se envían con la suite SSH instalada. El proceso para crear una clave SSH es el mismo entre ellos.

1\. ejecute lo siguiente para comenzar la creación de la clave

```
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
```

Este comando creará una nueva clave SSH usando el correo electrónico como etiqueta

2\. A continuación, se le pedirá que "Introduzca un archivo en el que guardar la clave".\
Puede especificar una ubicación de archivo o presionar "Enter" 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\. El siguiente mensaje le pedirá una contraseña segura.\
Una frase de contraseña agregará una capa adicional de seguridad al SSH y será necesaria cada vez que se use la clave SSH. Si alguien obtiene acceso a la computadora en la que se almacenan las claves privadas, también podría obtener acceso a cualquier sistema que use esa clave. Agregar una frase de contraseña a las claves evitará este escenario.

```
> 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\. Agregue la nueva clave SSH al ssh-agent

El ssh-agent es otro programa que forma parte del conjunto de herramientas SSH. El ssh-agent es responsable de mantener las claves privadas. Piense en ello como un llavero. Además de mantener las claves privadas, también gestiona solicitudes para firmar solicitudes SSH con las claves privadas para que las claves privadas nunca se transmitan de forma insegura.

Antes de agregar la nueva clave SSH al ssh-agent, primero asegúrese de que ssh-agent se esté ejecutando ejecutando:

```
$ eval "$(ssh-agent -s)"
> Agent pid 59566
```

Una vez que el ssh-agent se esté ejecutando, el siguiente comando agregará 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!

### Genere una clave SSH en Windows <a href="#installing-git-lfs" id="installing-git-lfs"></a>

Los entornos de Windows no tienen un shell Unix estándar por defecto. Será necesario instalar programas de shell externos para tener una experiencia keygen completa. La opción más sencilla es utilizar [Git Bash](https://www.atlassian.com/es/git/tutorials/git-bash) . Una vez que Git Bash está instalado, se pueden seguir los mismos pasos para Linux y Mac dentro del shell de Git Bash.

### Subsistema de Windows Linux <a href="#installing-git-lfs" id="installing-git-lfs"></a>

Los entornos de Windows modernos ofrecen un subsistema de Windows Linux. El subsistema Windows Linux ofrece un shell completo de Linux 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 Linux.

### Resumen

Las claves SSH se utilizan para autenticar conexiones seguras. Siguiendo esta guía, podrá crear y comenzar a usar una clave SSH. Git es capaz de usar claves SSH en lugar de la autenticación de contraseña tradicional al presionar o extraer a repositorios remotos.&#x20;

## Agregar una clave SSH nueva a tu cuenta de GitHub

1. Copia la clave SSH a tu portapapeles.

   Si tu archivo de clave SSH tiene un nombre diferente al código del ejemplo, modifica el nombre de archivo para que concuerde con tu configuración actual. Al copiar tu clave, no agregues líneas nuevas o espacios en blanco.

   ```
   $ clip < ~/.ssh/id_rsa.pub
   # Copies the contents of the id_rsa.pub file to your clipboard
   ```

   **Sugerencia:** Si `clip` no está funcionando, puedes ubicar la carpeta `.shh` oculta, abrir el archivo en tu editor de texto favorito, y copiarlo en tu portapapeles.
2. En la esquina superior derecha de cualquier página, da clic en tu foto de perfil y después da clic en **Configuración**.![Icono Settings (Parámetros) en la barra de usuario](https://docs.github.com/assets/images/help/settings/userbar-account-settings.png)
3. En la barra lateral de configuración de usuario, da clic en **Llaves SSH y GPG**.![Llaves de autenticación](https://docs.github.com/assets/images/help/settings/settings-sidebar-ssh-keys.png)
4. Haz clic en **New SSH key** (Nueva clave SSH) o **Add SSH key** (Agregar clave SSH).![Botón SSH Key (Clave SSH)](https://docs.github.com/assets/images/help/settings/ssh-add-ssh-key.png)
5. En el campo "Title" (Título), agrega una etiqueta descriptiva para la clave nueva. Por ejemplo, si estás usando tu Mac personal, es posible que llames a esta tecla "Personal MacBook Air".
6. Copia tu clave en el campo "Key" (Clave).![Campo de llave](https://docs.github.com/assets/images/help/settings/ssh-key-paste.png)
7. Haz clic en **Add SSH key** (Agregar tecla SSH).![Botón Add key (Agregar llave)](https://docs.github.com/assets/images/help/settings/ssh-add-key.png)
8. Si se te solicita, confirma tu contraseña GitHub.![Diálogo Modo sudo](https://docs.github.com/assets/images/help/settings/sudo_mode_popup.png)
