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.
Administración de claves SSH y PGP en Transfer Family
En esta sección, encontrará información sobre las claves SSH, inclusive cómo generarlas y cómo rotarlas. Para obtener más información sobre el uso de Transfer Family with AWS Lambda para administrar las claves, consulte la entrada del blog Habilitar la administración de claves de autoservicio del usuario con A AWS Transfer Family y AWS Lambda
nota
AWS Transfer Family acepta claves RSA, ECDSA y ED25519.
En esta sección también se explica cómo generar y administrar las claves Pretty Good Privacy (PGP).
Temas
Algoritmos admitidos para las claves de usuario y del servidor
Los siguientes algoritmos clave son admitidos con los pares de claves de usuario y de servidor dentro de AWS Transfer Family.
nota
Para ver los algoritmos que se pueden usar con el descifrado PGP en los flujos de trabajo, consulte Algoritmos admitidos con los pares de claves PGP.
-
Para ED25519:
ssh-ed25519
-
Para RSA (Rivest, Shamir y Adleman):
-
rsa-sha2-256
-
rsa-sha2-512
-
-
Para ECDSA:
-
ecdsa-sha2-nistp256
-
ecdsa-sha2-nistp384
-
ecdsa-sha2-nistp521
-
nota
Admitimos ssh-rsa
con SHA1 para nuestras políticas de seguridad más antiguas. Para obtener más detalles, consulte Algoritmos criptográficos.
Genere claves SSH para los usuarios administrados por el servicio
Puede configurar su servidor para que autentique a los usuarios aplicando el método de autenticación administrada por el servicio, con el que los nombres de usuario y las claves SSH se almacenan en el servicio. La clave pública SSH del usuario se carga en el servidor como una propiedad de usuario. El servidor utiliza esta clave como parte de un proceso de autenticación estándar basado en claves. Cada usuario puede tener varias claves SSH públicas en un mismo servidor. Para conocer los límites en la cantidad de claves que se pueden almacenar por usuario, consulte los puntos de conexión y cuotas de AWS Transfer Family en Referencia general de Amazon Web Services.
Como alternativa al método de autenticación gestionado por el servicio, puede autenticar a los usuarios mediante un proveedor de identidad personalizado, o bien. AWS Directory Service for Microsoft Active Directory Para obtener más información, consulte Uso de proveedores de identidad personalizados o Uso AWS de Directory Service para Microsoft Active Directory.
Un servidor solo puede autenticar a los usuarios mediante un método (administrado por el servicio, servicio de directorio o proveedor de identidad personalizado), y ese método no se puede cambiar una vez creado el servidor.
Temas
Creación de claves SSH en macOS, Linux o Unix
En los sistemas operativos macOS, Linux o Unix, se utiliza el comando ssh-keygen
para crear una clave pública SSH y una clave privada SSH, también conocidas como par de claves.
Creación claves SSH en un sistema operativo macOS, Linux o Unix
-
En los sistemas operativos macOS, Linux o Unix, abra una terminal de comandos.
-
AWS Transfer Family acepta claves con formato RSA, ECDSA y ED25519. Elija el comando apropiado en función del tipo de par de claves que esté generando.
nota
En los ejemplos siguientes, no especificamos una frase de contraseña: en este caso, la herramienta le pide que introduzca la frase de contraseña y, a continuación, que la repita para verificarla. La creación de una frase de contraseña ofrece una mejor protección para la clave privada y, también, podría mejorar la seguridad general del sistema. No puede recuperar la frase de contraseña: si la olvida, debe crear una clave nueva.
Sin embargo, si va a generar una clave de host de servidor, debe especificar una frase de contraseña vacía especificando la opción
-N ""
en el comando (o pulsandoEnter
dos veces cuando se le solicite), ya que los servidores de Transfer Family no pueden solicitar una contraseña al inicio.-
Para generar un par de claves RSA de 4096 bits:
ssh-keygen -t rsa -b 4096 -f
key_name
-
Para generar un par de claves ECDSA de 521 bits (el ECDSA tiene tamaños de bits de 256, 384 y 521):
ssh-keygen -t ecdsa -b 521 -f
key_name
-
Para generar un par de claves ED25519:
ssh-keygen -t ed25519 -f
key_name
nota
es el nombre del archivo del par de claves SSH.key_name
A continuación se muestra un ejemplo del resultado
ssh-keygen
.ssh-keygen -t rsa -b 4096 -f key_name Generating public/private rsa key pair. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in key_name. Your public key has been saved in key_name.pub. The key fingerprint is: SHA256:8tDDwPmanTFcEzjTwPGETVWOGW1nVz+gtCCE8hL7PrQ bob.amazon.com The key's randomart image is: +---[RSA 4096]----+ | . ....E | | . = ... | |. . . = ..o | | . o + oo = | | + = .S.= * | | . o o ..B + o | | .o.+.* . | | =o*+*. | | ..*o*+. | +----[SHA256]-----+
nota
Al ejecutar
ssh-keygen
como se ha mostrado, el comando crea las claves pública y privada como archivos en el directorio actual.Tu par de claves SSH ya está listo para usarse. Siga los pasos 3 y 4 para almacenar la clave pública SSH para los usuarios gestionados por el servicio. Estos usuarios utilizan las claves cuando transfieren archivos en los puntos finales del servidor Transfer Family.
-
-
Desplácese hasta el archivo
y ábralo.key_name
.pub -
Copie el texto y péguelo en la clave pública SSH del usuario administrado por el servicio.
-
Abra la AWS Transfer Family consola en https://console.aws.amazon.com/transfer/
y, a continuación, seleccione Servidores en el panel de navegación. -
En la página Servidores, seleccione el ID de servidor para el servidor que contiene el usuario que desea actualizar.
-
Seleccione el usuario para el que va a añadir una clave pública.
-
En el panel de claves públicas SSH, seleccione Añadir clave pública SSH.
-
Pegue el texto de la clave pública que ha generado en el cuadro de texto de la clave pública SSH y, a continuación, seleccione Añadir clave.
La clave nueva aparece en el panel de claves públicas SSH.
-
Creación de claves SSH en Microsoft Windows
Windows utiliza un formato ligeramente distinto para el par de claves SSH. La clave pública debe tener el formato PUB
, mientras que la clave privada debe tener el formato PPK
. En Windows, puede utilizar PuTTYgen para crear un par de claves SSH con los formatos correctos. También puede utilizar PuTTYgen para convertir una clave privada generada con ssh-keygen
en un archivo .ppk
.
nota
Si en WinSCP elige un archivo de clave privada que no está en formato .ppk
, ese cliente le ofrecerá convertir la clave automáticamente al formato .ppk
.
Para ver un tutorial sobre la creación de claves SSH con PuTTYgen en Windows, consulte el sitio web SSH.com
Convierta una clave pública SSH2 a formato PEM
AWS Transfer Family solo acepta claves públicas con formato PEM. Si tiene una clave pública SSH2, debe convertirla. Una clave pública SSH2 tiene el siguiente formato:
---- BEGIN SSH2 PUBLIC KEY ---- Comment: "rsa-key-20160402" AAAAB3NzaC1yc2EAAAABJQAAAgEAiL0jjDdFqK/kYThqKt7THrjABTPWvXmB3URI : : ---- END SSH2 PUBLIC KEY ----
Una clave pública PEM tiene el siguiente formato:
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAA...
Ejecute el siguiente comando para convertir una clave pública con formato SSH2 en una clave pública con formato PEM. Reemplace ssh2-key
por el nombre de su clave SSH2, y la clave PEM
por el nombre de su clave PEM.
ssh-keygen -i -f
ssh2-key
.pub >PEM-key
.pub
Rotar claves SSH
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.
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 DeleteSshPublicKeyAPI para eliminar la clave pública de Secure Shell (SSH) de un usuario y la ImportSshPublicKeyAPI para añadir una nueva clave pública de Secure Shell (SSH) a la cuenta del usuario.
Genere y administre claves PGP
Puede utilizar el descifrado de Pretty Good Privacy (PGP) con los archivos que Transfer Family procesa mediante flujos de trabajo. Para utilizar el descifrado en un paso del flujo de trabajo, proporcione una clave PGP.
El blog sobre AWS almacenamiento tiene una entrada que describe cómo descifrar archivos de forma sencilla sin escribir ningún código mediante los flujos de trabajo gestionados por Transfer Family, cifrar y descifrar archivos con PGP
Generar claves PGP
El operador que utilice para generar las claves PGP dependerá del sistema operativo y de la versión del software de generación de claves que utilice.
Si utiliza Linux o Unix, utilice el instalador de paquetes para realizar la instalación de gpg
. Dependiendo de su distribución de Linux, uno de los siguientes comandos debería funcionar para usted.
sudo yum install gnupg
sudo apt-get install gnupg
Para Windows o macOS, puede descargar lo que necesite desde https://gnupg.org/download/
Después de instalar el software generador de claves PGP, ejecute gpg
--full-gen-key
o el comando gpg --gen-key
para generar un par de claves.
nota
Si utiliza la versión 2.3.0 o posterior de GnuPG
, debe ejecutar gpg --full-gen-key
. Cuando se le pida el tipo de clave que desea crear, elija RSA o Elliptic Curve Cryptography (ECC, criptografía de curva elíptica). Sin embargo, si elige ECC, asegúrese de seleccionar una NIST o BrainPool para la curva elíptica. No seleccione Curve 25519.
Algoritmos admitidos con los pares de claves PGP
Admitimos los siguientes algoritmos para los pares de claves PGP:
-
RSA
-
ElGamal
-
ECC:
-
NIST
-
BrainPool
-
nota
No admitimos las claves CCurve25519.
Subcomandos de gpg
útiles
Los siguientes son algunos subcomandos útiles para gpg
:
-
gpg --help
: este comando muestra las opciones disponibles y puede incluir algunos ejemplos. -
gpg --list-keys
— Este comando muestra los detalles de todos los pares de claves que ha creado. -
gpg --fingerprint
— Este comando muestra los detalles de todos los pares de claves, incluida la huella digital de cada clave. -
gpg --export -a
: este comando exporta la parte de la clave pública de la clave parauser-name
que se utilizó cuando se generó la clave.user-name
Administración de claves PGP
Para administrar sus claves PGP, utilice AWS Secrets Manager.
nota
Su nombre secreto incluye su ID de servidor de Transfer Family. Esto significa que ya debe haber identificado o creado un servidor antes de poder almacenar la información de su clave PGP en AWS Secrets Manager.
Si quiere usar una clave y una frase de contraseña para todos sus usuarios, puede almacenar la información del bloque de claves PGP bajo el nombre secreto aws/transfer/
, en el que server-id
/@pgp-default
es el ID de su servidor de Transfer Family. Transfer Family usa esta clave predeterminada si no hay ninguna clave que server-id
coincida con el usuario que ejecuta el flujo de trabajo. user-name
Puede crear una clave para un usuario específico. En este caso, el formato del nombre secreto esaws/transfer/
, donde server-id
/user-name
coincide con el usuario que ejecuta el flujo de trabajo de un servidor Transfer Family.user-name
nota
Puede almacenar un máximo de 3 claves privadas PGP, por servidor de Transfer Family y por usuario.
Configuración de las claves PGP para su uso con el descifrado
-
Según la versión de GPG que utilice, ejecute uno de los siguientes comandos para generar un key pair de claves PGP que no utilice un algoritmo de cifrado Curve 25519.
-
Si utiliza la versión 2.3.0 de
GnuPG
o posterior, ejecute el siguiente comando:gpg --full-gen-key
Puede elegir
RSA
o, si eligeECC
, puede elegirNIST
oBrainPool
para la curva elíptica. Si ejecutagpg --gen-key
en su lugar, cree un par de claves que utilice el algoritmo de cifrado ECC Curve 25519, que, actualmente, no admitimos para las claves PGP. -
Para las versiones de
GnuPG
anteriores a la 2.3.0, puede usar el siguiente comando, ya que RSA es el tipo de cifrado predeterminado.gpg --gen-key
importante
Durante el proceso de generación de claves, debe proporcionar una frase de contraseña y una dirección de correo electrónico. Asegúrese de tomar nota de estos valores. Debe proporcionar la frase de contraseña cuando introduzca los detalles de la clave en AWS Secrets Manager más adelante en este procedimiento. Además, debe proporcionar la misma dirección de correo electrónico para exportar la clave privada en el siguiente paso.
-
-
Ejecute el siguiente comando para exportar la clave privada. Para usar este comando, reemplace
por el nombre del archivo en el que se va a guardar el bloque de clave privada, y reemplaceprivate.pgp
por la dirección de correo electrónico que utilizó al generar el par de claves.marymajor@example.com
gpg --output
private.pgp
--armor --export-secret-keymarymajor@example.com
-
Se usa AWS Secrets Manager para almacenar la clave PGP.
-
Inicie sesión AWS Management Console y abra la AWS Secrets Manager consola en https://console.aws.amazon.com/secretsmanager/
. -
En el panel de navegación izquierdo, seleccione Secretos.
-
En la página Secretos, seleccione Almacenar un nuevo secreto.
-
En la página Seleccionar tipo de secreto, en Tipo de secreto, seleccione Otro tipo de secreto.
-
En la sección de Pares clave-valor, seleccione la pestaña Clave/valor.
-
Clave: introduzca
PGPPrivateKey
.nota
Debe introducir la cadena
PGPPrivateKey
con precisión: no añada espacios antes o entre los caracteres. -
valor: pegue el texto de su clave privada en el campo valor. Puede encontrar el texto de la clave privada en el archivo (por ejemplo,
private.pgp
) que especificó al exportar la clave al principio de este procedimiento. La clave comienza con-----BEGIN PGP PRIVATE KEY BLOCK-----
y termina con-----END PGP PRIVATE KEY BLOCK-----
.nota
Asegúrese de que el bloque de texto contenga solo la clave privada y que no contenga también la clave pública.
-
-
Seleccione Agregar fila y en la sección Pares clave/valor, seleccione la pestaña Clave/valor.
-
Clave: introduzca
PGPPassphrase
.nota
Debe introducir la cadena
PGPPassphrase
con precisión: no añada espacios antes o entre los caracteres. -
valor: introduzca la contraseña que utilizó al generar su par de claves PGP.
nota
Puede agregar hasta 3 conjuntos de claves y frases de contraseña. Para añadir un segundo conjunto, añada dos filas nuevas, introduzca
PGPPrivateKey2
yPGPPassphrase2
para las claves, y pegue otra clave privada y frase de contraseña. Para añadir un tercer conjunto, los valores de la clave deben serPGPPrivateKey3
yPGPPassphrase3
. -
-
Seleccione Siguiente.
-
En la página Configurar secreto, introduzca un nombre y una descripción para el secreto.
-
Si va a crear una clave predeterminada, es decir, una clave que pueda utilizar cualquier usuario de Transfer Family, introduzca
aws/transfer/
. Reemplaceserver-id
/@pgp-default
por el ID del servidor que contiene el flujo de trabajo que tiene un paso de descifrado.server-id
-
Si va a crear una clave para que la utilice un usuario específico de Transfer Family, introduzca
aws/transfer/
. Reemplaceserver-id
/user-name
por el ID del servidor que contiene el flujo de trabajo que tiene un paso de descifrado y reemplaceserver-id
por el nombre del usuario que ejecuta el flujo de trabajo.user-name
se almacena en el proveedor de identidad que utiliza el servidor de Transfer Family.user-name
-
-
Seleccione Siguiente y acepte los valores predeterminados de la página Configurar rotación. A continuación, seleccione Siguiente.
-
En la página de Revisión, elija Guardar para crear y almacenar el secreto.
-
La siguiente captura de pantalla muestra los detalles del usuario marymajor
para un servidor de Transfer Family específico. En este ejemplo, se muestran tres claves y sus frases de contraseñas correspondientes.
![La AWS Secrets Manager consola, que muestra la página de detalles secretos con tres claves y contraseñas para un servidor y un usuario de Transfer Family.](images/pgp-secrets-02.png)
Clientes PGP admitidos
Se probaron los siguientes clientes con Transfer Family y se pueden usar para generar claves PGP y para cifrar los archivos que se pretende descifrar con un flujo de trabajo.
-
Gpg4win + Kleopatra.
nota
Cuando seleccione Firmar/cifrar archivos, asegúrese de borrar la selección de Firmar como: actualmente no se admite la firma de archivos cifrados.
Si firmas el archivo cifrado e intentas subirlo a un servidor de Transfer Family con un flujo de trabajo de descifrado, recibirás el siguiente error:
Encrypted file with signed message unsupported
-
Versiones principales de GnuPG: 2.4, 2.3, 2.2, 2.0 y 1.4.
Tenga en cuenta que es posible que otros clientes de PGP también funcionen, pero solo los clientes mencionados aquí se han probado con Transfer Family.