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.
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.
Imagen en la que se puede hacer clicPara obtener el identificador de almacenamiento en bloque (
ID EBS ), haga clic en el nombre del
dispositivo Root .
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.
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谩.
- 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.
- 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).
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.
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.
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.
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.
- 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 WindowsPara 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
- 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 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 montajePor 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
:
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 llavesPor 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.
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.