Instrucciones paso a paso para recuperar el acceso a instancias de Linux Amazon EC2 al perder un archivo pem

Si durante la creaci贸n de la instancia de Linux en AWS, no se cre贸 un par de claves (KeyPair) para acceder a 茅l a trav茅s de SSH o se pierden, entonces se deben realizar varias operaciones para acceder a la m谩quina. No puede agregar claves a una instancia que ya se est谩 ejecutando a trav茅s de la consola de AWS. Hay tres formas de restaurar el acceso SSH a una instancia.

La forma m谩s f谩cil es configurar la clave utilizando el mecanismo de inicio en la nube (gracias por la sugerencia de yusman ). Pero no funciona si los derechos del directorio /home est谩n da帽ados o la distribuci贸n no es compatible con las directivas de inicio de la nube.

La segunda forma es crear una imagen (Amazon Machine Image) a partir de una instancia existente y luego lanzar una nueva instancia basada en ella, pero con una clave. Por lo tanto, la m谩quina existente se clonar谩 con la 煤nica diferencia de que en la 煤ltima etapa es posible crear nuevas claves. Crear una imagen puede llevar mucho tiempo para una instancia con discos grandes, y tendr谩 que configurar todos los servicios vinculados a esta m谩quina nuevamente. Por lo tanto, este m茅todo en la mayor铆a de los casos llevar谩 m谩s tiempo.

Los documentos oficiales de Amazon describen otra forma . Le permite restaurar el acceso y minimizar el costo de reconfigurar los servicios (en comparaci贸n con el segundo m茅todo), que est谩n vinculados a una instancia a la que se pierde el acceso. El art铆culo da una descripci贸n paso a paso del mismo.

Atencion Este m茅todo solo funciona para instancias que usan el almacenamiento de bloques (Amazon Elastic Block Store) como dispositivo ra铆z, y no funciona para el almacenamiento de instancias local (Amazon EC2 Instance Store).

Para averiguar qu茅 tipo de dispositivo ra铆z est谩 utilizando, abra la consola Amazon EC2, vaya a Instancias , seleccione una instancia y verifique el valor del par谩metro Tipo de dispositivo ra铆z en el panel con informaci贸n detallada.

Tipo de dispositivo ra铆z de instancia

Si su m谩quina tiene EBS , entonces este m茅todo es adecuado para usted.

Paso 1. Preparaci贸n


Primero, debe guardar cierta informaci贸n para no tener que distraerse y no cambiar a otras pantallas (especialmente porque ser谩 muy inconveniente). Todos los datos se pueden encontrar en la informaci贸n detallada de la instancia (ya sabe c贸mo llegar all铆). Registre la siguiente configuraci贸n:

  • ID de instancia
  • ID de AMI
  • ID de EBS
  • Dispositivo de ra铆z
  • Zona de disponibilidad

Para una instancia que se ejecuta en VPC , guarde el valor de ID de VPC .

Para EC2-classic : si se crea una direcci贸n IP el谩stica ( Elastic IP ) para una instancia, tambi茅n se debe guardar su valor.

Configuraci贸n de instancia para guardar
Imagen en la que se puede hacer clic

Para obtener el identificador de almacenamiento en bloque ( ID EBS ), haga clic en el nombre del dispositivo Root .

ID de EBS


Paso 2. Crear una instancia temporal


El siguiente paso es crear una instancia con la que restaurar谩 las claves en la instancia original. Puede omitir este paso si tiene otra instancia en ejecuci贸n ubicada en la misma zona (zona de disponibilidad) que la restaurada, y al mismo tiempo que se cre贸 con el mismo AMI o la versi贸n del sistema operativo en 茅l le permitir谩 conectar el disco desde la instancia original y Copie las claves SSH. Si no existe tal instancia, siga estos pasos:

  • Vaya a la consola EC2 (en el tablero o en el men煤 Instancias ) y haga clic en Iniciar instancia
  • En la p谩gina de selecci贸n AMI ( Elegir una imagen de m谩quina de Amazon ), seleccione la que se utiliz贸 para crear la instancia original (la escribi贸 en el primer paso: ID de AMI ). Si por alguna raz贸n esta AMI no est谩 disponible, puede crear una imagen de la instancia original y usarla, o seleccionar el tipo de AMI a la que puede conectar el disco ra铆z de la instancia restaurada
  • En la p谩gina Elegir un tipo de instancia , seleccione el tipo m谩s barato disponible.
  • En la p谩gina Configurar detalles de instancia , especifique la misma zona de disponibilidad que en nuestra instancia. Si se est谩 ejecutando en VPC, seleccione la misma VPC en el elemento Red y especifique la subred en esta zona.

    Configurar zona de disponibilidad

    Sin embargo, no es necesario cambiar la configuraci贸n de las interfaces de red.
  • No se requieren cambios en la p谩gina Agregar almacenamiento .
  • En la p谩gina de etiquetas ( Agregar etiquetas ), agregue un nombre para la instancia temporal para que sea f谩cil de identificar y luego no pierda tiempo en conciliar la ID de instancia y la ID de EBS , ya que en las p谩ginas donde tendr谩 que determinar con qu茅 instancia o volumen est谩 trabajando, en el t铆tulo Este valor aparecer谩.

    Nombre en la p谩gina Agregar etiquetas

  • Haga clic en Revisar e iniciar y luego en Iniciar
  • El 煤ltimo paso es seleccionar un par de claves existente o crear uno nuevo. Descargue el archivo de clave (pem) y no olvide hacer una copia de seguridad para que no tenga que volver a realizar todas las operaciones.

    Guardando KeyPair
  • Despu茅s de guardar el archivo, inicie la instancia con el bot贸n Iniciar instancias


Paso 3. Conectando el disco ra铆z de la m谩quina restaurada a una instancia temporal


Primero debe desconectar el disco de la instancia original y conectarlo a uno temporal. Dado que este es el disco ra铆z, la instancia original deber谩 detenerse antes de desconectarlo.

  • Vaya a la consola EC2 en la secci贸n Instancias y seleccione la instancia original (puede determinarse por la ID de instancia registrada anteriormente o por un nombre que difiere del que especific贸 al crear la instancia temporal).

    Parada de instancia

    Siguiente en el men煤 Acciones - Estado de instancia - Detener .

    Atencion Cuando se detiene la instancia, se borran todos los datos del almacenamiento local (Almac茅n de instancias de Amazon EC2). Si tiene datos sobre tales vol煤menes, cuide su seguridad transfiri茅ndolos a un almacenamiento permanente, si es necesario.
  • Despu茅s de detener la instancia, vaya a la secci贸n Elastic Block Store - Volumes y seleccione el volumen ra铆z de la instancia original. Puede determinarse mediante la ID de volumen almacenada o en funci贸n de la informaci贸n de la columna Informaci贸n de archivo adjunto , que contiene el nombre de la instancia.

    Unidad de silencio

    Siguiente en el men煤 Acciones - Separar volumen
  • Conecte este volumen a una instancia temporal. Para hacer esto, selecci贸nelo nuevamente, luego en el men煤 Acciones - Adjuntar volumen y en el cuadro de di谩logo que aparece, especifique su instancia temporal.

    Conexi贸n de la unidad

    Luego haga clic en Adjuntar . Si la instancia original se cre贸 a trav茅s de AMI de AWS Marketplace y la secci贸n contiene c贸digos de AWS Marketplace, recibir谩 un error que indica que es imposible conectar la secci贸n con c贸digos a una instancia de trabajo.

    Error al conectar la unidad con los c贸digos de AWS Marketplace

    En este caso, detenga nuestra instancia temporal y repita los pasos para conectar el volumen ra铆z de la instancia original a la instancia temporal. El segundo intento debe ser exitoso.
  • Ahora deber铆a ver que ambas unidades est谩n conectadas a una instancia temporal.

    Ambas unidades est谩n conectadas a una instancia temporal
  • Si detuvo la instancia, ejec煤tela:

    • Vaya a la secci贸n Instancias de la barra de navegaci贸n.
    • Elige una instancia temporal
    • A continuaci贸n, en el men煤 Acciones - Estado de instancia - Inicio .


Paso 4. Preparar claves para conectarse a la instancia a trav茅s de SSH


Los usuarios de Linux no necesitan generar claves adicionales. Solo necesita otorgar permisos de lectura a este archivo:

chmod 400 my-keypair.pem

Preparaci贸n clave si est谩 ejecutando Windows
Para conectarse a una m谩quina Linux, usaremos la utilidad PuTTY, as铆 que si no la tiene instalada, desc谩rguela . Para conectarse a trav茅s de SSH, necesitar谩 una clave ppk , mientras que con AWS se guard贸 la clave en formato pem . Para obtener la clave del formato deseado, haga lo siguiente:

  • Abrir PuTTYgen (instalado con PuTTY)
  • Seleccione 2048 bit en los par谩metros RSA

    RSA 2048 bit
  • Descargue la clave pem guardada haciendo clic en Cargar (Cargar un archivo de clave privada existente)
  • Especifique la frase de contrase帽a (frase de contrase帽a clave ) y conf铆rmela ( confirme la frase de contrase帽a ). Esto no es necesario, pero es m谩s seguro. La 煤nica diferencia es que cuando se conecta con esta tecla, siempre se le pedir谩 que ingrese esta frase para confirmar la entrada.
  • Guarde el archivo con el nombre que especific贸 al crear el par de claves ( KeyPair ) durante la creaci贸n de la instancia temporal (el nombre coincide con el nombre de la clave pem )

La llave est谩 lista.


Paso 5. Con茅ctese a una instancia temporal a trav茅s de SSH


Con茅ctese en el puerto 22 con la llave. El nombre de usuario depende de qu茅 AMI se utiliz贸 para crear la instancia. Lo escribiste al principio. Son posibles los siguientes nombres de usuario:

  • Amazon Linux 2 o Amazon Linux AMI - usuario ec2
  • Centos AMI - centos
  • Debian AMI - administrador o root
  • Fedora AMI - usuario ec2 o fedora
  • RHEL AMI: usuario ec2 o root
  • SUSE AMI: usuario ec2 o root
  • Ubuntu AMI - ubuntu
  • Por lo dem谩s, si los nombres ec2-user y root no funcionan, comun铆quese con su proveedor de AMI

El nombre de host al que desea conectarse es user@aws-host.amazon.com , donde user es el nombre descrito anteriormente, y aws-host.amazon.com es la direcci贸n IP de su instancia, que se puede encontrar en la pesta帽a de informaci贸n detallada (desde all铆 guardaste los par谩metros desde el principio). El par谩metro se llama IPv4 IP p煤blica . Tenga en cuenta que si no utiliza Elastic IP , cada vez que inicie la instancia, tendr谩 una nueva direcci贸n IP.

Instrucciones de conexi贸n para usuarios de Windows
  • Lanzar PuTTY
  • En el campo Nombre del host , la direcci贸n tiene el formato nombre de usuario @ direcci贸n-ip

    Configurar PuTTY. Nombre del anfitri贸n

  • Vaya a la secci贸n Conexi贸n - SSH - Auth y descargue la clave ppk (archivo de clave privada para autenticaci贸n)
  • Haga clic en Abrir y luego acepte confiar en el servidor
  • Si especific贸 una frase de contrase帽a al crear una clave ppk, ingr茅sela para confirmar la entrada:

     Using username "ubuntu". Authenticating with public key "imported-openssh-key" Passphrase for key "imported-openssh-key": 

  • Est谩s en el servidor

    Inicio de sesi贸n exitoso en el servidor



Paso 6. Copiar claves de una instancia temporal al original


Monte el volumen que conect贸 a la instancia temporal para poder acceder a su sistema de archivos.

Partici贸n de montaje
Por ejemplo, si el nombre de la unidad es /dev/sdf (puede aparecer de manera diferente en su instancia), use las siguientes operaciones para montar el volumen en /mnt/tempvol :

  • Determine los nombres de partici贸n de la unidad asignada:

    [user ~]$ lsblk

     NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 10G 0 disk 鈹斺攢xvda1 202:1 0 10G 0 part / xvdf 202:80 0 10G 0 disk 鈹斺攢xvdf1 202:81 0 10G 0 part 

    /dev/xvda1 y /dev/xvdf1 son particiones de disco. /dev/xvdf1 no tiene un punto de montaje (MOUNTPOINT), por lo que esta es la partici贸n del disco que conectamos anteriormente.
  • Cree un directorio temporal para montar la partici贸n:

    [user ~]$ sudo mkdir /mnt/tempvol
  • Monte la partici贸n en el directorio creado:

    [user ~]$ sudo mount /dev/ xvdf1 /mnt/tempvol


Copie las claves SSH de la instancia temporal a la partici贸n montada.

Atencion Use el nombre de usuario provisto en la l铆nea de comando. Esto es necesario, porque a pesar del hecho de que se ha conectado con 茅xito con un nombre de usuario est谩ndar, que depende del sistema operativo (descrito en el paso 5), en el AMI de AWS Marketplace puede ser diferente despu茅s de iniciar sesi贸n. Por ejemplo, para AMI WordPress Certified by Bitnami, al iniciar sesi贸n a trav茅s de SSH, el inicio de sesi贸n est谩ndar para Ubuntu es ubuntu . Sin embargo, el nombre de usuario despu茅s de iniciar sesi贸n es bitnami

Copiar llaves
Por ejemplo, si el nombre de usuario es ubuntu , use el siguiente comando para copiar:

[user ~]$ cp .ssh/authorized_keys /mnt/tempvol/home/ ubuntu /.ssh/authorized_keys

Si no tiene permiso para editar los archivos en /mnt/tempvol , copie los archivos con sudo y verifique los derechos para asegurarse de que puede acceder a la instancia original:

  • Verifique los permisos de archivo:

    [user ~]$ sudo ls -l /mnt/tempvol/home/ ubuntu /.ssh/authorized_keys
    total 4
    -rw------- 1 200 500 392 Aug 15 00:06 authorized_keys

    En el ejemplo, 200 es la ID de usuario y 500 es la ID de grupo.
  • Reinicie el comando de copia clave usando sudo :

    [user ~]$ sudo cp .ssh/authorized_keys /mnt/tempvol/home/ ubuntu /.ssh/authorized_keys

  • Compruebe si los permisos en el archivo han cambiado:

    [user ~]$ sudo ls -l /mnt/tempvol/home/ ubuntu /.ssh/authorized_keys

    Si los derechos han cambiado, resta煤relos:

    [user ~]$ sudo chown 200 : 500 /mnt/tempvol/home/ ubuntu /.ssh/authorized_keys


Desmontar la secci贸n:

[user ~]$ sudo umount /mnt/tempvol

Paso 7. Iniciar la instancia con acceso restaurado a trav茅s de SSH


  • En la consola EC2, seleccione la unidad que conect贸 a la temporal y en el men煤: Acciones - Separar volumen . Espere hasta que el estado del disco est茅 disponible (puede usar el bot贸n Actualizar para actualizar la informaci贸n).

    Recuerde terminar previamente la instancia si la secci贸n contiene c贸digos de AWS Marketplace.
  • Para la misma unidad, vaya al men煤 Acciones - Adjuntar volumen
  • Seleccione la instancia original y especifique el nombre del disco ra铆z que grab贸 al principio.

    Conexi贸n de la unidad
    Imagen en la que se puede hacer clic

    Haga clic en Adjuntar
  • Ejecutar instancia
  • Para EC2-classic : si Elastic IP se configur贸 para la instancia original, vuelva a asociarlo con ella:

    • Vaya a la secci贸n Elastic IP de la barra de navegaci贸n.
    • Seleccione la direcci贸n IP el谩stica que anot贸 al principio
    • Pr贸ximas acciones: direcci贸n asociada
    • Seleccione el ID de instancia original y haga clic en Asociar


Paso 8. Verificaci贸n de acceso


Con茅ctese a la instancia de acceso restaurada utilizando la clave generada.

Si el nombre del nuevo par de claves es diferente del anterior, aseg煤rese de conectarse utilizando la nueva clave privada.

Paso 9. La etapa final


Si cre贸 una nueva instancia temporal para realizar todas las operaciones y no utiliz贸 una existente, det茅ngala si ya no la necesita:

  • Vaya a la secci贸n Instancias de la barra de navegaci贸n.
  • Elige una instancia temporal
  • Siguiente en el men煤 Acciones - Estado de instancia - Terminar

De esta forma recuper贸 el acceso a la instancia de Linux Amazon EC2.

Source: https://habr.com/ru/post/es420297/


All Articles