# Creación de llave pública y privada

La conexión al clúster se realizará mediante el uso de llaves públicas, para ello cada usuario deberá generar su propia llave pública (id\_ed25519.pub) y privada (id\_ed25519 o id\_ed25519 pkk) .  En las instrucciones siguiente se protegerá la llave privada con una clave.

{% hint style="danger" %}

* Nunca comparta su llave privada.
* Respalde su llave privada.&#x20;
* Sí pierde su llave privada  u olvida su clave (passphrase) deberá generar una nueva llave privada y una nueva llave pública.&#x20;
  {% endhint %}

## Generar Llave pública y privada en Linux/Mac

En Linux por defecto se encuentra el comando ssh-keygen el cual generará los archivos id\_ed25519.pub (llave pública) y id\_ed25519 (llave privada) en el directorio \~/.ssh del usuario

```bash
# https://linux.die.net/man/1/ssh-keygen
ssh-keygen -t ed25519 -C "hpc_uai"
```

<figure><img src="https://2530501554-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhMQ2WahEBujKpLTMSuq0%2Fuploads%2F3xYW5VHrVIUdqcvpHzX7%2Fssh_keygen_ed_linux.png?alt=media&#x26;token=a29b951d-8b1e-431c-91c4-dd840a086d84" alt=""><figcaption><p>ssh-keygen</p></figcaption></figure>

## Generar llave pública y privada en Windows 10 vía cmd

En Windows 10 se encuentra el comando ssh-keygen instalado el cual generará los archivos id\_ed25519.pub (llave pública) y id\_ed25519 (llave privada) en el directorio del usuario desde una terminal cmd (tecla windows  cmd )

Como activar ssh:  <https://learn.microsoft.com/en-us/windows-server/administration/openssh/openssh_install_firstuse?tabs=gui#install-openssh-for-windows>

```powershell
ssh-keygen -t ed25519 -C "hpc_uai"
```

<figure><img src="https://2530501554-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhMQ2WahEBujKpLTMSuq0%2Fuploads%2FU9RXFTONEr0pKPIW9ZC3%2Fssh-keygen-ed-win_e.PNG?alt=media&#x26;token=640af65d-aef0-42ff-a909-30668d9654a1" alt=""><figcaption><p>Ejemplo ssh-keygen en la terminal de windows</p></figcaption></figure>

<figure><img src="https://2530501554-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhMQ2WahEBujKpLTMSuq0%2Fuploads%2F3ORajhCflFeoifLOQMg2%2Farchivos.PNG?alt=media&#x26;token=3d29a96f-5aa5-404b-9af7-67a443f784cd" alt=""><figcaption></figcaption></figure>

## Generar llave pública y privada en Windows con puttygen.exe

Se recomienda instalar la versión completa de putty o descarga putty y puttygen.

Link putty: <https://www.putty.org/>

Link directo descarga : <https://the.earth.li/~sgtatham/putty/latest/w64/putty-64bit-0.81-installer.msi>

1. Ejecutar puttygen
2. Seleccionar "EdDSA" y  usar "Ed25519 (255 bits)"
3. Ejecutar Generate
4. Ingresar una clave en "Key passphrase" y  "Confirm passphrase" y en "key comment" hpc\_uai
5. Ejecutar "Save public key". En este ejemplo se guardo en el escritorio y con nombre id\_ed25519.pub
6. Ejecutar "Save private key". En este ejemplo se guardo en el escritorio y con nombre id\_ed25519 (el programa le agrega la extensión ppk quedando como id\_ed25519.ppk)

<figure><img src="https://2530501554-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhMQ2WahEBujKpLTMSuq0%2Fuploads%2FoJGTwnI6HLxtoF3iVZ2W%2Fputtygen_generar.PNG?alt=media&#x26;token=c78ef41a-4dc9-40aa-ab17-3108aa7a7017" alt=""><figcaption><p>Puttygen.exe</p></figcaption></figure>

<figure><img src="https://2530501554-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhMQ2WahEBujKpLTMSuq0%2Fuploads%2F3RHpHGUmtPmvVwn5Ex4l%2Fputtygen_clave.PNG?alt=media&#x26;token=6166ec0f-ac61-4efd-a529-ccefcf0b3daf" alt=""><figcaption><p>Llave generada y clave ingresada</p></figcaption></figure>

<figure><img src="https://2530501554-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhMQ2WahEBujKpLTMSuq0%2Fuploads%2FD3fIQiwTwQJOxM19GPQE%2Farchivos%20putty.PNG?alt=media&#x26;token=284b3f9d-487b-4bcb-977e-aff241a103d8" alt=""><figcaption><p>Listado de archivos generados</p></figcaption></figure>

## Transformar el formato de la llave pública generada en putty a formato ssh-keygen

Sí se necesita transformar una llave generada en putty al formato  que usa ssh-keygen realice lo siguiente: Copie el contenido de las 2 lineas que se encuentra bajo la linea  que empiece con "Comment:" , borre el salto de linea  que se encuentre al final de la primera linea y agregue al inicio "ssh-ed25519 " y al final " hpc\_uai", quedando como se ve en el ejemplo.

{% code title="id\_ed25519.pub (formato putty)" %}

```
---- BEGIN SSH2 PUBLIC KEY ----
Comment: "eddsa-key-20241118"
AAAAC3VVVVVVVVVVVSSSSSSSSSSSSSSSSSSSEEEEErxtpR2Pd35Wywd5qKfPE4pg
ZZZZ
---- END SSH2 PUBLIC KEY ----
```

{% endcode %}

{% code title="id\_ed25519.pub (transformado)" %}

```
ssh-ed25519 AAAAC3VVVVVVVVVVVSSSSSSSSSSSSSSSSSSSEEEEErxtpR2Pd35Wywd5qKfPE4pgZZZZ hpc_uai

```

{% endcode %}

## Usar la llave privada en un nuevo equipo

La llave pública y privada son simples archivos por lo que pueden usarse desde cualquier equipo.

### Llave generada con ssh-keygen

Verifique que el nuevo equipo cuente con el comando ssh y copie los archivos id\_ed25519.pub y id\_ed25519  en la carpeta .ssh ubicada en la raiz del usuario.

### Llave generada con Puttygen

Copie los archivos  id\_ed25519.pub y  id\_ed25519 pkk a su nuevo equipo y siga los pasos "Cómo conectarse al cluster".

{% hint style="info" %}
En distribuciones Linux puede existir un problema de permisos (error bad permissions), asegúrese que el nuevo usuario es el propietario y el único que puede leer el archivo  ("chmod 400 llave\_privada")
{% endhint %}
