

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Rotar claves SSH
<a name="keyrotation"></a>

Por seguridad, la rotación de las claves SSH es una buena práctica que recomendamos. Normalmente, la rotación se especifica como parte de una política de seguridad y se implementa con algún mecanismo automático. En función del nivel de seguridad, para comunicaciones altamente confidenciales puede que un par de claves SSH se utilice una sola vez. Esto elimina cualquier riesgo derivado del almacenamiento de las claves. Sin embargo, es mucho más habitual almacenar las credenciales SSH durante cierto periodo de tiempo y establecer un intervalo que no suponga una carga excesiva para los usuarios. Un intervalo de tres meses es habitual.

**nota**  
Para obtener información sobre la rotación automática de claves SSH utilizando la infraestructura como código, consulte[Módulos Transfer Family Terraform](terraform.md).

Existen dos métodos para realizar la rotación de claves SSH:
+ En la consola, puede cargar una clave pública SSH nueva y eliminar una clave pública SSH existente.
+ Con la API, puede actualizar los usuarios existentes mediante la [DeleteSshPublicKey](https://docs.aws.amazon.com//transfer/latest/APIReference/API_DeleteSshPublicKey.html)API para eliminar la clave pública de Secure Shell (SSH) de un usuario y la [ImportSshPublicKey](https://docs.aws.amazon.com/transfer/latest/APIReference/API_ImportSshPublicKey.html)API para añadir una nueva clave pública de Secure Shell (SSH) a la cuenta del usuario.

------
#### [ Console ]

**Cómo realizar una rotación de claves en la consola**

1. Abra la AWS Transfer Family consola en. [https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/)

1. Navegue a la página **Servidores**.

1. Elija el identificador en la columna **ID de servidor** para ver la página **Detalles del servidor**.

1. En **Usuarios**, seleccione la casilla del usuario cuya clave pública SSH quiere rotar, luego, seleccione **Acciones** y, a continuación, seleccione **Añadir clave** para ver la página **Añadir clave**.

   o

   Seleccione el nombre de usuario para ver la página de **Detalles del usuario** y, a continuación, **Añadir clave pública SSH** para ver la página **Añadir clave**.

1. Introduzca la nueva clave pública de SSH y seleccione **Añadir clave**.
**importante**  
El formato de la clave pública SSH depende del tipo de clave que haya generado.  
En el caso de las claves RSA, el formato es `ssh-rsa {{string}}`.
En el caso de las claves ED25519, el formato es `ssh-ed25519 {{string}}`.
En el caso de las claves ECDSA, la clave comienza por `ecdsa-sha2-nistp256`, `ecdsa-sha2-nistp384` o `ecdsa-sha2-nistp521`, según el tamaño de la clave que haya generado. A continuación, la cadena inicial va seguida de `{{string}}`, de forma similar a los demás tipos de clave.

   Volverá entonces a la pantalla **Detalles de usuario** en cuya **sección de claves SSH públicas** aparecerá la nueva clave pública SSH.

1. Seleccione las casillas de verificación situadas junto a las claves que desea eliminar y seleccione **Eliminar**.

1. Confirme la operación de eliminación escribiendo la palabra `delete` y, a continuación, seleccione **Eliminar**.

------
#### [ API ]

**Cómo realizar una rotación de claves mediante la API**

1. En los sistemas operativos macOS, Linux o Unix, abra una terminal de comandos.

1.  Recupere la clave SSH que desea eliminar al ingresar el siguiente comando. Para usar este comando, reemplace `{{serverID}}` por el ID del servidor de su servidor de Transfer Family y reemplace `{{username}}` por su nombre de usuario.

   ```
   aws transfer describe-user --server-id='{{serverID}}' --user-name='{{username}}'
   ```

   El comando devuelve detalles sobre el usuario. Copie el contenido del campo `"SshPublicKeyId":`. Tendrá que introducir este valor más tarde en este mismo procedimiento. 

   ```
   "SshPublicKeys": [ { "SshPublicKeyBody": "{{public-key}}", "SshPublicKeyId": "{{keyID}}",
      "DateImported": 1621969331.072 } ],
   ```

1.  A continuación, importe una nueva clave SSH para su usuario. Cuando se le solicite, introduzca el comando siguiente. Para usar este comando, reemplace `{{serverID}}` por el ID del servidor de su servidor de Transfer Family, reemplace `{{username}}` por su nombre de usuario, y reemplace `{{public-key}}` por la huella digital de su clave pública nueva. 

   ```
   aws transfer import-ssh-public-key --server-id='{{serverID}}' --user-name='{{username}}'
      --ssh-public-key-body='{{public-key}}'
   ```

   ``Si el comando se ejecuta correctamente, no se muestra ningún resultado.

1.  Por último, elimine la clave anterior mediante el siguiente comando. Para usar este comando, reemplace `{{serverID}}` por el ID del servidor de su servidor de Transfer Family, reemplace `{{username}}` por su nombre de usuario, y reemplace `{{keyID-from-step-2}}` por el valor de identificador de clave que copió en el paso 2 de este procedimiento 

   ```
   aws transfer delete-ssh-public-key --server-id='{{serverID}}' --user-name='{{username}}'
      --ssh-public-key-id='{{keyID-from-step-2}}'
   ```

1. (Opcional) Para confirmar que la clave anterior ya no existe, repita el paso 2.

------