¿Puedo SSH en mi instancia de servidor Amazon EC2 si no tengo el archivo .pem de cuando se creó la instancia?

10

Estoy trabajando con algunos servidores Amazon EC2 que están en funcionamiento y necesito SSH en los servidores. No tengo ninguna clave que se generó cuando los servidores se configuraron por primera vez (alguien más lo hizo mucho antes de que yo llegara aquí). ¿Todavía puedo ingresar a los servidores sin los archivos clave?

FWIW He intentado muchas cosas para SSH en la caja hasta ahora, incluida la generación de nuevos pares de claves en el panel de control de EC2, y nada parece funcionar. Esta publicación de soporte de Amazon AWS y esta respuesta parecen indicar que no tengo suerte a menos que quiera hacer un AMI de mi servidor actual y luego usarlo para crear una instancia de un servidor EC2 completamente nuevo (solo para obtener el archivo .pem generado En ese tiempo). ¿Es realmente la única forma en que puedo entrar en la caja en este momento?

Eric
fuente

Respuestas:

26

En resumen: sí, puedes, pero no sin algo de trabajo.

Deberá hacer lo siguiente:

(Para estos pasos, suponga que la máquina a la que tiene problemas para conectarse se llama server-01).

Primero, antes de comenzar estos pasos, tome una instantánea de su servidor.

  1. Comience una nueva instancia temporal. Llámalo servidor-02.
  2. Detener el servidor-01. No lo termines, solo detenlo.
  3. /Desenganche el volumen raíz ( ) EBS del servidor-01 y conéctelo al servidor-02 como, por ejemplo /dev/sdb.
  4. Inicia sesión en el servidor-02, y ejecute: $ mkdir /mnt/temp && mount /dev/sdb /mnt/temp. Esto montará la partición raíz del servidor 01 dentro del servidor 02 (temporal).
  5. Ahora debería poder: $ vi /home/<user>/.ssh/authorized_keysy copiar / pegar en su clave pública. Cuando haya hecho eso, guarde y cierre el archivo.
  6. Ahora ejecute: $ cd / && umount /mnt/temppara desmontar la partición raíz del servidor-01 del servidor-02.
  7. Ahora, simplemente desconecte ese volumen del servidor-02, conéctelo nuevamente al servidor-01 y luego inicie el servidor-01. Cuando se inicia, deberías poder volver a ingresar.
EEAA
fuente
2
Solo para agregar a esta excelente respuesta, encontré esta publicación de blog que lo guía desde la línea de comandos. alestic.com/2011/02/ec2-fix-ebs-root
Eric
1

Solo un consejo antes de que alguien pruebe la respuesta de EEAA ,

Si no ha ejecutado el comando iptables saveo iptables-savepara guardar sus configuraciones, simplemente reinicie el servidor. Citando esta respuesta en AskUbuntu , aprendí que iptablesguarda sus configuraciones en la RAM a menos que las guarde explícitamente en los archivos de configuración.

Las instancias de EC2 se pueden reiniciar fácilmente desde el Panel de control de EC2 o aws-cli

retr0
fuente
Umm, parece una respuesta a otra pregunta publicada erróneamente aquí. No hay nada sobre firewall / iptables en esta pregunta.
kubanczyk
Lo malo, esta respuesta es para cuando todo el tráfico se bloquea a un servidor si todas las direcciones IP están bloqueadas. Avísame si es necesario desmontarlo.
retr0