Me dieron acceso a la consola de AWS a una cuenta con 2 instancias en ejecución que no puedo cerrar (en producción). Sin embargo, me gustaría obtener acceso SSH a estas instancias, ¿es posible crear un nuevo Keypair y aplicarlo a las instancias para que pueda ingresar SSH? Obtener el archivo pem existente para el par de claves en el que se crearon las instancias actualmente no es una opción.
Si esto no es posible, ¿hay alguna otra forma en que pueda entrar en las instancias?
amazon-web-services
authentication
ssh
amazon-ec2
permissions
Chris Wagner
fuente
fuente
ssh-add
Debe hacer lo que necesita.Respuestas:
No puede aplicar un par de claves a una instancia en ejecución. Solo puede usar el nuevo par de claves para iniciar una nueva instancia.
Para la recuperación, si se trata de un AMI de arranque de EBS, puede detenerlo y hacer una instantánea del volumen. Crea un nuevo volumen basado en él. Y poder usarlo nuevamente para iniciar la instancia anterior, crear una nueva imagen o recuperar datos.
Aunque los datos en el almacenamiento efímero se perderán.
Debido a la popularidad de esta pregunta y respuesta, quería capturar la información en el enlace que Rodney publicó en su comentario.
El crédito va a Eric Hammond por esta información .
Arreglando archivos en el volumen EBS raíz de una instancia EC2
Puede examinar y editar archivos en el volumen EBS raíz en una instancia EC2 incluso si se encuentra en lo que consideró una situación desastrosa como:
En una computadora física ubicada en su escritorio, puede simplemente iniciar el sistema con un CD o una memoria USB, montar el disco duro, retirar y reparar los archivos, luego reiniciar la computadora para volver a estar en el negocio.
Sin embargo, una instancia remota de EC2 parece distante e inaccesible cuando se encuentra en una de estas situaciones. Afortunadamente, AWS nos proporciona la potencia y flexibilidad para poder recuperar un sistema como este, siempre que estemos ejecutando instancias de arranque de EBS y no almacenes de instancias.
El enfoque en EC2 es algo similar a la solución física, pero vamos a mover y montar el "disco duro" defectuoso (volumen EBS raíz) a una instancia diferente, arreglarlo y luego volverlo a mover.
En algunas situaciones, podría ser simplemente más fácil iniciar una nueva instancia de EC2 y descartar la mala, pero si realmente desea corregir sus archivos, este es el enfoque que ha funcionado para muchos:
Preparar
Identifique la instancia original (A) y el volumen que contiene el volumen EBS raíz roto con los archivos que desea ver y editar.
Identifique la segunda instancia de EC2 (B) que utilizará para corregir los archivos en el volumen EBS original. Esta instancia debe ejecutarse en la misma zona de disponibilidad que la instancia A para que pueda tener el volumen EBS adjunto. Si aún no tiene una instancia en ejecución, inicie una temporal.
Detenga la instancia rota A (esperando que se detenga por completo), desconecte el volumen raíz EBS de la instancia (esperando que se desconecte), luego conecte el volumen a la instancia B en un dispositivo no utilizado.
ssh a la instancia B y monte el volumen para que pueda acceder a su sistema de archivos.
Arreglalo
En este punto, todo el sistema de archivos raíz de la instancia A está disponible para ver y editar en / vol-a en la instancia B. Por ejemplo, es posible que desee:
Nota: Los uid en las dos instancias pueden no ser idénticos, así que tenga cuidado si está creando, editando o copiando archivos que pertenecen a usuarios no root. Por ejemplo, su usuario de mysql en la instancia A puede tener el mismo UID que su usuario de postfix en la instancia B, lo que podría causar problemas si crea archivos con un nombre y luego mueve el volumen nuevamente a A.
Envolver
Una vez que haya terminado y esté satisfecho con los archivos en / vol-a, desmonte el sistema de archivos (todavía en la instancia-B):
Ahora, de vuelta en su sistema con ec2-api-tools, continúe moviendo el volumen de EBS nuevamente a su hogar en la instancia original A e inicie la instancia nuevamente:
Afortunadamente, solucionó el problema, la instancia A sale bien y puede lograr lo que originalmente se propuso hacer. De lo contrario, es posible que deba continuar repitiendo estos pasos hasta que lo tenga funcionando.
Nota: Si tenía una dirección IP elástica asignada a la instancia A cuando la detuvo, deberá volver a asociarla después de iniciarla nuevamente.
¡Recuerda! Si su instancia B se inició temporalmente solo para este proceso, no olvide terminarla ahora.
fuente
Aunque no puede agregar un par de claves a una instancia EC2 en ejecución directamente, puede crear un usuario de Linux y crear un nuevo par de claves para él, luego usarlo como lo haría con el par de claves del usuario original.
En su caso, puede pedirle al propietario de la instancia (que lo creó) que haga lo siguiente. Por lo tanto, el propietario de la instancia no tiene que compartir sus propias claves con usted, pero aún así podrá acceder a estas instancias. Estos pasos fueron publicados originalmente por Utkarsh Sengar (también conocido como @zengr ) en http://utkarshsengar.com/2011/01/manage-multiple-accounts-on-1-amazon-ec2-instance/ . Solo he hecho algunos pequeños cambios.
Paso 1: ingrese por defecto el usuario "ubuntu" :
Paso 2: crea un nuevo usuario, llamaremos a nuestro nuevo usuario "john" :
Establecer contraseña para "juan" por:
Agregue "john" a la lista de sudoers por:
.. y agregue lo siguiente al final del archivo:
¡Bien! Tenemos nuestro nuevo usuario creado, ahora necesita generar el archivo de clave que será necesario para iniciar sesión, como tenemos my_orin_key.pem en el Paso 1.
Ahora, salga y regrese a ubuntu, fuera de la raíz.
Paso 3: crear las claves públicas y privadas :
Ingrese la contraseña que creó para "john" en el Paso 2. Luego cree un par de claves. Recuerde que la frase de contraseña para el par de claves debe tener al menos 4 caracteres.
En el paso anterior, John es el usuario que creamos y ubuntu es el grupo de usuarios predeterminado.
Paso 4: ahora solo necesita descargar la clave llamada "john" . Utilizo scp para descargar / cargar archivos de EC2, así es como puedes hacerlo.
Aún necesitará copiar el archivo usando el usuario ubuntu , ya que solo tiene la clave para ese nombre de usuario. Por lo tanto, deberá mover la clave a la carpeta ubuntu y cambiarla a 777.
Ahora ve al terminal de la máquina local, donde tienes el archivo my_orig_key.pem y haz esto:
El comando anterior copiará la clave "juan" en el directorio de trabajo actual en su máquina local. Una vez que haya copiado la clave en su máquina local, debe eliminar "/ home / ubuntu / john", ya que es una clave privada.
Ahora, uno su máquina local chmod john a 600.
Paso 5: hora de probar tu clave :
¡Entonces, de esta manera, puede configurar múltiples usuarios para usar una instancia EC2!
fuente
En su máquina local, ejecute el comando:
Después de que se ejecute ese comando, se generará un archivo que termina en * .pub. Copie el contenido de ese archivo.
En la máquina Amazon, edite ~ / .ssh / Authorized_keys y pegue el contenido del archivo * .pub (y elimine primero cualquier contenido existente).
Luego, puede usar SSH utilizando el otro archivo que se generó a partir del comando ssh-keygen (la clave privada).
fuente
ssh-rsa AAAAB3NzaC1yc2EA...DsGt66 my-key-pair
Esto me sucedió antes (no tenía acceso a una instancia de EC2 que otra persona creó pero tenía acceso a la consola web de AWS) y escribí la respuesta en el blog: http://readystate4.com/2013/04/09/aws-gaining- ssh-access-to-an-ec2-instance-you-lost-access-to /
Básicamente, puede desconectar la unidad EBS, conectarla a un EC2 al que tiene acceso. Agregue su clave de publicación SSH
~ec2-user/.ssh/authorized_keys
en esta unidad adjunta. Luego, vuelva a colocarlo en la antigua instancia de EC2. paso a paso en el enlace usando Amazon AMI.No es necesario hacer instantáneas o crear una nueva instancia clonada.
fuente
En mi caso, utilicé esta documentación para asociar un par de claves con mi instancia de Elastic Beanstalk
Configuración de instancias de servidor Amazon EC2 con Elastic Beanstalk
fuente
Puede agregar una nueva clave a la instancia con el siguiente comando:
Puede configurar domain_alias en la configuración ~ / .ssh
fuente
No encontré una manera fácil de agregar un nuevo par de llaves a través de la consola, pero puede hacerlo manualmente.
Simplemente ingrese a su caja EC2 con el par de claves existente. Luego edite las teclas ~ / .ssh / Authorized y agregue la nueva clave en una nueva línea. Salga y ssh a través de la nueva máquina. ¡Éxito!
fuente
stackoverflow.com/questions/7881469/change-key-pair-for-ec2-instance
fuente
Para entornos Elasticbeanstalk, puede aplicar un par clave-valor a una instancia en ejecución como esta:
fuente
En realidad, puede agregar un par de claves a través de la página de configuración de beanstalk elástico. luego reinicia su instancia para usted y todo funciona.
fuente