¿Cómo cambio el par de claves para mi instancia 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.
¿Cómo cambio el par de claves para mi instancia 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.
Respuestas:
Esta respuesta es útil en el caso de que ya no tenga acceso SSH al servidor existente (es decir, perdió su clave privada).
Si aún tiene acceso SSH, utilice una de las respuestas a continuación.
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:
/dev/xvda1
volumen (llamémoslo volumen A) - vea aquí/dev/xvdf
(o /dev/sdf
)SSH a la nueva microinstancia y monte el volumen A en /mnt/tmp
$ sudo mount / dev / xvdf1 / mnt / tmp
Copiar ~/.ssh/authorized_keys
a/mnt/tmp/home/ubuntu/.ssh/authorized_keys
/dev/xvda
.pem
archivoEso es.
mkdir /mnt/tmp
y luego mount /dev/xvdf /mnt/tmp
debería hacer el truco para # 5. Y no olvides que el paso 13. probablemente esté rm ~/.ssh/known_hosts
en cajas desde las que te has conectado.
.ssh/authorized_keys
archivo original .
Una vez que se ha iniciado una instancia, no hay forma de cambiar el par de claves asociado a la instancia a 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 ssh pública y la instala en un archivo .ssh / Authorised_keys para que pueda ingresar como ese usuario utilizando la clave ssh privada correspondiente.
Si desea cambiar la clave ssh que utiliza para acceder a una instancia, deberá editar el archivo autorizado_keys en la instancia misma y convertirla a su nueva clave pública ssh.
El archivo authorised_keys se encuentra en el subdirectorio .ssh en el directorio de inicio del usuario con el que está iniciando sesión. Dependiendo del AMI que esté ejecutando, podría estar en uno de:
/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 una diferente terminal para confirmar que puede ingresar a la instancia antes de desconectarse de la sesión que está utilizando para editar el archivo. No desea cometer un error y excluirse por completo de la instancia.
Mientras piensa en los pares de claves ssh en EC2, le recomiendo cargar su propia clave pública ssh personal en EC2 en lugar de que Amazon genere el par de claves por 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.
.pem
archivo de clave privada en mi Mac, sin embargo, ssh -i key.pem
no se autentica (permiso denegado ( clave pública)). En la Consola de administración EC2 bajo Nombre de par de claves, no se enumera nada. Esto es alarmante para mí. ¿Cómo puedo configurar esto? ¡Parece basado en la Consola de administración que ningún par de llaves que he configurado se ha asignado a la instancia!
Ejecute este comando después de descargar su AWS pem.
ssh-keygen -f YOURKEY.pem -y
Luego volcar la salida en authorized_keys
.
O copie el archivo pem a su instancia de AWS y ejecute los siguientes comandos
chmod 600 YOURKEY.pem
y entonces
ssh-keygen -f YOURKEY.pem -y >> ~/.ssh/authorized_keys
Instrucciones del soporte de AWS EC2:
esto guardará el archivo autorizado de claves autorizadas
ahora intente abrir una nueva sesión SSH a su instancia utilizando su nueva clave pai
Cuando haya confirmado que puede ingresar SSH a la instancia utilizando el nuevo par de claves, puede vi .ssh / AuthorizedKey y eliminar la clave anterior.
Respuesta al comentario de Shaggie:
Si no puede conectarse a la instancia (por ejemplo, la clave está dañada), utilice la consola de 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 vuelva a conectarlo a la instancia anterior.
Noté que cuando es administrado por Elastic Beanstalk, puede cambiar su par de claves EC2 activo. En Elastic Beanstalk> Configuración> Seguridad, elija la nueva clave del menú desplegable Par de claves EC2 . Verá este mensaje preguntando si está seguro:
EC2KeyName: los cambios en la configuración de la opción EC2KeyName no surtirán efecto de inmediato. Cada una de sus instancias EC2 existentes será reemplazada y su nueva configuración entrará en vigencia en ese momento.
Mi instancia ya había terminado cuando hice esto. Luego comenzó, terminó y comenzó de nuevo. Aparentemente "reemplazar" significa terminar y crear una nueva instancia. Si ha modificado su volumen de arranque, cree primero una AMI, luego especifique esa AMI en el mismo formulario Elastic Beanstalk> Configuración> Instancias que la ID de AMI personalizada . Esto también advierte sobre la sustitución de las instancias EC2.
Después de modificar su par de claves EC2 y su 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 cuando se conecte a través de SSH.
Seguí 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: se encontró y se probó un enfoque mucho más fácil poco después:
Si se siguen los pasos a continuación, ahorrará mucho tiempo y no habrá necesidad de detener la instancia en ejecución.
Eso es. Disfruta :)
Creo que el enfoque más simple es:
En caso de que esté utilizando la plataforma ElasticBeanstalk, puede cambiar las claves yendo a:
Esto terminará la instancia actual y creará una nueva con las teclas / configuraciones elegidas.
Hay dos escenarios en esta pregunta:
1) No tiene acceso al archivo .pem , por eso desea crear uno nuevo.
2) Tienes el. acceso al archivo pem con usted, pero solo desea cambiar o crear un nuevo archivo .pem para fines de vulnerabilidad o seguridad .
Entonces, si perdió sus llaves, puede desplazarse hacia arriba y ver otras respuestas . Pero si simplemente cambia su archivo .pem por motivos de seguridad, siga los pasos:
1) Vaya al inicio de sesión de la consola de AWS y cree un nuevo archivo .pem desde la sección de pares de claves allí. Se descargará automáticamente el archivo .pem en tu PC
2) cambie el permiso a 400 si está usando Linux / ubuntu, presione el siguiente comando
chmod 400 yournewfile.pem
3) Genere RSA del archivo recién descargado en su máquina local
ssh-keygen -f yournewfile.pem -y
4) Copie el código RSA desde aquí
5) Ahora SSH a su instancia a través del archivo .pem anterior
ssh -i oldpemfileName.pem username@ipaddress
sudo vim ~/.ssh/authorized_keys
6) Dé espacio a una o dos líneas y pegue el RSA copiado del nuevo archivo aquí y luego guarde el archivo
7) Ahora su nuevo archivo .pem está vinculado con la instancia en ejecución
8) Si desea deshabilitar el acceso al archivo .pem anterior, simplemente edite el
sudo vim ~/.ssh/authorized_keys
archivo y elimine o cambie el RSA anterior desde aquí.
Nota: - Elimine con cuidado para que el RSA recién creado no se modifique.
De esta manera, puede cambiar / conectar el nuevo archivo .pem con su instancia en ejecución.
Puede revocar el acceso al archivo .pem generado anteriormente por motivos de seguridad.
¡Espero que ayude!
La solución más simple es copiar el contenido de
~/.ssh/id_rsa.pub
en las claves autorizadas de su instancia de AWS en
~/.ssh/authorized_keys
Esto le permitirá ingresar ssh a la instancia EC2 sin especificar un archivo pem para el comando ssh. Puede eliminar todas las demás claves una vez que haya probado la conexión.
Si necesita crear una nueva clave para compartirla con otra persona, puede hacerlo con:
ssh-keygen -t rsa
que creará el archivo key.pem privado, y puede obtener la clave pública de eso con:
ssh-keygen -f private_key.pem -y > public_key.pub
Cualquiera que tenga private_key.pem podrá conectarse con
ssh user@host.com -i private_key.pem
~/.ssh/authorized_keys
cuando ni siquiera puedo SSH aws instancia?
No necesita girar el dispositivo raíz y cambiar la clave pública SSH authorized_keys
. Para eso puede utilizar datos de usuario para agregarle claves ssh a cualquier instancia. Para eso primero necesita crear un nuevo KeyPair usando la consola de AWS o mediante ssh-keygen.
ssh-keygen -f YOURKEY.pem -y
Esto generará una clave pública para su nuevo SSH KeyPair, copie esta clave pública y úsela en el siguiente script.
Content-Type: multipart/mixed; boundary="//"
MIME-Version: 1.0
--//
Content-Type: text/cloud-config; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="cloud-config.txt"
#cloud-config
cloud_final_modules:
- [scripts-user, always]
--//
Content-Type: text/x-shellscript; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="userdata.txt"
#!/bin/bash
/bin/echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6xigPPA/BAjDPJFflqNuJt5QY5IBeBwkVoow/uBJ8Rorke/GT4KMHJ3Ap2HjsvjYrkQaKANFDfqrizCmb5PfAovUjojvU1M8jYcjkwPG6hIcAXrD5yXdNcZkE7hGK4qf2BRY57E3s25Ay3zKjvdMaTplbJ4yfM0UAccmhKw/SmH0osFhkvQp/wVDzo0PyLErnuLQ5UoMAIYI6TUpOjmTOX9OI/k/zUHOKjHNJ1cFBdpnLTLdsUbvIJbmJ6oxjSrOSTuc5mk7M8HHOJQ9JITGb5LvJgJ9Bcd8gayTXo58BukbkwAX7WsqCmac4OXMNoMOpZ1Cj6BVOOjhluOgYZbLr" >> /home/hardeep/.ssh/authorized_keys
--//
Después del reinicio, la máquina tendrá la clave de publicación SSH especificada. Elimine los datos de usuario después del primer reinicio. Lea más sobre los datos de usuario en el inicio .
Advertencia: No olvide borrar los datos del usuario nuevamente. De lo contrario, esta tecla se presionará en cada inicio de instancia. Instrucciones paso a paso .
#cloud-config
bootcmd:
- echo 'ssh-rsa AAAAB3Nz...' > /root/.ssh/authorized_keys
He intentado los pasos a continuación y funcionó sin detener la instancia. Mi requisito era que, como he cambiado mi máquina cliente, el antiguo archivo .pem no me permitía iniciar sesión en la instancia ec2.
Verá sus viejas claves en ese archivo.
ssh-keygen -f YOUR_PEM_FILE.pem -y Generará una clave. Agregue la clave a ~ / .ssh / certified_keys abierta en el paso 1. No es necesario eliminar la clave anterior.
Desde la consola de AWS, cree un nuevo par de claves. Guárdelo en su nueva máquina. Cámbiele el nombre al antiguo archivo pem: la razón es que el antiguo archivo pem todavía está asociado con la instancia ec2 en AWS.
Todo listo.
Puedo iniciar sesión en AWS ec2 desde mi nuevo equipo cliente.
Tiene varias opciones para reemplazar la clave de su instancia EC2.
Dado que la primera opción se puede encontrar fácilmente en las respuestas o en el motor de búsqueda que elija, quiero centrarme en el Administrador de sistemas.
Systems Manager
Automation
el lado izquierdo.Execute Automation
AWSSupport-TroubleshootSSH
(generalmente está en la última página)Puede encontrar más información sobre la documentación oficial de AWS
La respuesta de Yegor256 funcionó para mí, pero pensé que solo agregaría algunos comentarios para ayudar a aquellos que no son tan buenos montando unidades (¡como yo!):
Amazon te da la opción de nombrar el volumen cuando lo adjuntas. Ha utilizado un nombre en el rango de / dev / sda - / dev / sdp. Las versiones más nuevas de Ubuntu cambiarán el nombre de lo que haya puesto a / dev / xvd (x) o algo por el estilo.
Entonces, para mí, elegí / dev / sdp como nombre del nombre de montaje 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 por todos esos aros, pude acceder a mis archivos en / mnt / tmp
Esto funcionará solo si tiene acceso a la instancia en la que desea cambiar / agregar 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 autorizado_claves de su instancia.
vim .ssh / autorizado_claves
Ahora puede usar la clave privada para ese par e iniciar sesión.
Espero que esto ayude.
si no puede iniciar sesión en VM y eliminó las claves ssh y también puede cambiar el par de claves de su ec2 siguiendo los pasos a continuación. Vaya paso a paso 1) detenga su instancia ec2. 2) tome una instantánea de VM y almacenamiento. 3) cree una nueva VM mientras la crea, seleccione su instantánea y cree una VM a partir de su instantánea. 4) mientras que la creación de VM descarga su par de claves. 5) una vez que su VM UP puede ssh con un nuevo par de claves y sus datos también retrocederán.
Lo que puedes hacer...
Cree un nuevo perfil / rol de instancia que tenga adjunta la política AmazonEC2RoleForSSM.
Adjunte este perfil de instancia a la instancia.
Gracias por los consejos chicos. Definitivamente los tendré en cuenta cuando necesite descansar los pares de claves. Sin embargo, en aras de la eficiencia y la pereza, se me ocurrió algo más:
Espero que esto pueda serle útil y le ahorre algo de tiempo, así como minimizar la cantidad de cabello blanco que obtiene de cosas como esta :)