Cambiar el par de claves para la instancia de ec2

¿Cómo cambio el par de claves para mi instancia de ec2 en la consola de administración de AWS? Puedo detener la instancia, puedo crear un nuevo par de claves, pero no veo ningún enlace para modificar el par de claves de la instancia.

Solo haz esto: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html#replacing-lost-key-pair

Esto es lo que hice, gracias a la publicación del blog de Eric Hammond:

  1. Detener la instancia EC2 en ejecución
  2. /dev/xvda1 volumen /dev/xvda1 (llamémoslo volumen A) – vea aquí
  3. Inicie la nueva instancia de t1.micro EC2, utilizando mi nuevo par de claves. Asegúrese de crearlo en la misma subred ; de lo contrario, tendrá que finalizar la instancia y volver a crearla. – mira aquí
  4. Adjunte el volumen A a la nueva microinstancia, como /dev/xvdf (o /dev/sdf )
  5. SSH a la nueva instancia micro y el volumen de assembly A a /mnt/tmp

    $ sudo mount / dev / xvdf1 / mnt / tmp

  6. Copie ~/.ssh/authorized_keys a /mnt/tmp/home/ubuntu/.ssh/authorized_keys

  7. Cerrar sesión
  8. Terminar microinstancia
  9. Separar el volumen A de ella
  10. Adjunte el volumen A a la instancia principal como /dev/xvda
  11. Comience la instancia principal
  12. Inicie sesión como antes, usando su nuevo archivo .pem

Eso es.

Una vez que se ha iniciado una instancia, no hay forma de cambiar el par de claves asociado con la instancia en un nivel de metadatos, pero puede cambiar la clave ssh que usa para conectarse a la instancia.

Hay un proceso de inicio en la mayoría de las AMI que descarga la clave pública ssh y la instala en un archivo .ssh / authorized_keys para que pueda ingresar como ese usuario usando la clave ssh privada correspondiente.

Si desea cambiar la clave ssh que utiliza para acceder a una instancia, querrá editar el archivo authorized_keys en la instancia en sí y convertir a su nueva clave pública ssh.

El archivo authorized_keys está bajo el subdirectorio .ssh en el directorio de inicio del usuario con el que está iniciando sesión. Según el AMI que esté ejecutando, podría estar en uno de los siguientes:

 /home/ec2-user/.ssh/authorized_keys /home/ubuntu/.ssh/authorized_keys /root/.ssh/authorized_keys 

Después de editar un archivo authorized_keys, siempre use un terminal diferente para confirmar que puede ingresar a la instancia antes de desconectarse de la sesión que está utilizando para editar el archivo. No quiere cometer un error y bloquearse fuera de la instancia por completo.

Mientras piensa en los pares de claves ssh en EC2, le recomiendo que cargue su propia clave pública ssh personal a EC2 en lugar de que Amazon genere el par de llaves para usted.

Aquí hay un artículo que escribí sobre esto:

Carga de claves ssh personales en Amazon EC2
http://alestic.com/2010/10/ec2-ssh-keys

Esto solo se aplicaría a las nuevas instancias que ejecute.

Ejecute este comando después de descargar su pem AWS.

 ssh-keygen -f YOURKEY.pem -y 

Luego descargue la salida en authorized_keys .

O copie el archivo pem en su instancia de AWS y ejecute los siguientes comandos

 chmod 600 YOURKEY.pem 

y entonces

 ssh-keygen -f YOURKEY.pem -y >> ~/.ssh/authorized_keys 

Instrucción del soporte de AWS EC2:

  1. Cambiar el inicio de sesión de pem
  2. ve a tu consola EC2
  3. En RED Y SEGURIDAD, haga clic en Par de claves Haga clic en Crear par de claves
  4. Dale un nombre a tu nuevo par de claves, guarda el archivo .pem. El nombre del par de claves se usará para conectarse a su instancia
  5. Cree una conexión SSH a su instancia y manténgala abierta
  6. en PuttyGen, haga clic en “Cargar” para cargar su archivo .pem
  7. Mantenga el botón de radio SSH-2 RSA marcado. Haga clic en “Guardar clave privada” Aparecerá una ventana emergente de advertencia, haga clic en “Sí”.
  8. haga clic en “Guardar clave pública” también, para generar la clave pública. Esta es la clave pública que vamos a copiar a su instancia actual
  9. Guarde la clave pública con el nuevo nombre del par de claves y con la extensión .pub
  10. Abra el contenido de la clave pública en una libreta
  11. copie el contenido debajo de “Comentario:” import-openssh-key “y antes” —- END SSH2 CLAVE PÚBLICA —-
    Nota: debe copiar el contenido como una sola línea, eliminar todas las líneas nuevas
  12. en su instancia conectada, abra su archivo authorized_keys con la herramienta vi. Ejecute el siguiente comando: vi .ssh / authorized_keys debería ver la clave pública original en el archivo también
  13. Mueva el cursor sobre el archivo hasta el final de su primer contenido de clave pública: escriba “i” para insertar
  14. en la nueva línea, escriba “ssh-rsa” y agregue un espacio antes de pegar el contenido de la clave pública, el espacio y el nombre del archivo .pem (sin el .pem) Nota: debe obtener una línea con el mismo formato que la línea anterior
  15. presione la tecla Esc, y luego escriba: wq!

esto guardará el archivo autorizado authorized_ actualizado

ahora intente abrir una nueva sesión SSH a su instancia usando su nueva clave pai

Cuando hayas confirmado que puedes conectar SSH a la instancia utilizando el nuevo par de claves, puedes vi .shsh / authorized_key y eliminar la clave anterior.

Respuesta a la observación de Shaggie:

Si no puede conectarse a la instancia (por ejemplo, la clave está dañada), utilice la consola AWS para separar el volumen ( http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-detaching-volume.html ) y vuelva a conectarlo a la instancia de trabajo, luego cambie la clave en el volumen y vuélvala a conectar a la instancia anterior.

Noté que cuando se administra con Elastic Beanstalk, puede cambiar su par de claves EC2 activas. En Elastic Beanstalk> Configuración> Seguridad, elija la nueva clave del menú desplegable EC2 key pair . Verás este mensaje preguntando si estás seguro:

EC2KeyName: los cambios en la configuración de la opción EC2KeyName no tendrán efecto de inmediato. Cada una de sus instancias EC2 existentes será reemplazada y su nueva configuración tendrá efecto entonces.

Mi instancia ya había terminado cuando hice esto. Luego comenzó, finalizó y comenzó de nuevo. Aparentemente, “reemplazar” significa terminar y crear una nueva instancia. Si ha modificado su volumen de inicio, primero cree un AMI y especifique ese AMI en el mismo formulario Elastic Beanstalk> Configuración> Instancias que el ID de AMI personalizado . Esto también advierte sobre la sustitución de las instancias de EC2.

Después de modificar el par de claves EC2 y la ID de AMI personalizada, y después de ver las advertencias sobre ambos, haga clic en Guardar para continuar.

Recuerde que la dirección IP cambia cuando se vuelve a crear la instancia, por lo que deberá recuperar una nueva dirección IP de la consola EC2 para usarla al conectarse a través de SSH.

Pasé por este enfoque, y después de un tiempo, pude hacerlo funcionar. La falta de comandos reales lo hizo difícil, pero lo descubrí. SIN EMBARGO, un enfoque mucho más fácil fue encontrado y probado poco después:

  1. Guarde su instancia como un AMI (reinicie o no, sugiero reiniciar). Esto solo funcionará si EBS respalda.
  2. Luego, simplemente inicie una instancia desde este AMI y asigne su nuevo archivo Keyfile.
  3. Mueva su IP elástica (si corresponde) a su nueva instancia y listo.

Modificar la respuesta de ” yegor256 “. Como si se siguieran los pasos a continuación, ahorrará mucho tiempo y no habrá necesidad de detener la instancia en ejecución.

  1. Inicie la nueva instancia de t1.micro EC2, utilizando un nuevo par de claves. Asegúrese de crearlo en la misma subred ; de lo contrario, tendrá que finalizar la instancia y volver a crearla.
  2. SSH a la nueva instancia micro y copie el contenido de ~ / .ssh / authorized_keys en algún lugar de su computadora.
  3. Inicie sesión en la instancia principal con la antigua clave ssh .
  4. Copie y reemplace el contenido del archivo del punto 2 a ~ / .ssh / authorized_keys
  5. Ahora puede iniciar sesión nuevamente solo con la nueva clave. La vieja clave ya no funcionará.

Eso es. Disfruta 🙂

En caso de que esté utilizando la plataforma ElasticBeanstalk, puede cambiar las teclas yendo:

  • Panel Elastic Beanstalk
  • Configuración
  • Instancias (cog top-right)
  • Par de llaves EC2

Esto terminará la instancia actual y crea una nueva con las teclas / configuraciones elegidas.

Creo que el enfoque más simple es:

  1. Crear imagen AMI de iinstance original.
  2. Inicie una nueva instancia EC2 utilizando una imagen AMI (desde el paso 1) con un nuevo par de claves.
  3. Inicie sesión en la nueva instancia de EC2 con la nueva clave.

La respuesta de Yegor256 funcionó para mí, pero pensé que solo agregaría algunos comentarios para ayudar a aquellos que no son tan buenos para montar discos (¡como yo!):

Amazon le ofrece la opción de elegir el volumen al que lo va a asignar cuando lo conecte. Has usado un nombre en el rango de / dev / sda – / dev / sdp. Las versiones más nuevas de Ubuntu cambiarán el nombre de lo que pusiste allí a / dev / xvd (x) o algo por el estilo.

Así que para mí, elegí / dev / sdp como nombre del nombre de assembly en AWS, luego inicié sesión en el servidor y descubrí que Ubuntu había cambiado el nombre de mi volumen a / dev / xvdp1). Luego tuve que montar el disco, para mí tuve que hacerlo así:

 mount -t ext4 xvdp1 /mnt/tmp 

Después de saltar todos esos aros, pude acceder a mis archivos en / mnt / tmp

He intentado a continuación los pasos y funcionó sin detener la instancia. Mi requerimiento era que, como he cambiado mi máquina cliente, el antiguo archivo .pem no me permitía iniciar sesión en la instancia de ec2.

  1. Inicie sesión en la instancia de ec2 con su antiguo archivo .pem de la máquina anterior. Abrir ~ / .ssh / authorized_keys

Verás tus llaves viejas en ese archivo.

  1. ssh-keygen -f YOUR_PEM_FILE.pem -y generará una clave. Agregue la clave a ~ / .ssh / authorized_keys abierto en el paso # 1. No es necesario borrar la clave anterior.

  2. Desde la consola AWS, crea un nuevo par de claves. Guárdelo en su nueva máquina. Cambie el nombre al archivo pem antiguo: razón por la cual el archivo pem antiguo aún está asociado con la instancia ec2 en AWS.

Todo listo.

Puedo iniciar sesión en AWS ec2 desde mi nueva máquina cliente.

La solución más simple es copiar el contenido de

 ~/.ssh/id_rsa.pub 

en las “authorized_keys” de su instancia de AWS en

 ~/.ssh/authorized_keys 

Esto le permitirá ingresar a la instancia EC2 sin especificar un archivo pem para el comando ssh. Puede eliminar todas las otras claves una vez que haya probado conectarse a ella.

Si necesita crear una nueva clave para compartirla con otra persona, puede hacerlo con:

 ssh-keygen -t rsa 

que creará el archivo privado key.pem, y puede obtener la clave pública de eso con:

 ssh-keygen -f private_key.pem -y > public_key.pub 

Cualquier persona que tenga public_key.pub podrá conectarse con

 ssh user@host.com -i public_key.pub 

Esto solo funcionará si tiene acceso a la instancia que desea cambiar / agrega la clave. Puede crear un nuevo par de claves. O si ya tiene el par de claves, puede pegar la clave pública del nuevo par en el archivo authorized_keys en su instancia.

vim .ssh / authorized_keys

Ahora puede usar la clave privada para ese par e iniciar sesión.

Espero que esto ayude.