ADVERTENCIA: ¡ARCHIVO DE CLAVE PRIVADO NO PROTEGIDO! al intentar SSH en la instancia de Amazon EC2

I'm working to set up Panda on an Amazon EC2 instance. I set up my account and tools last night and had no problem using SSH to interact with my own personal instance, but right now I'm not being allowed permission into Panda's EC2 instance. Getting Started with Panda

Me aparece el siguiente error:

@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @

Permissions 0644 for '~/.ec2/id_rsa-gsg-keypair' are too open.
It is recommended that your private key files are NOT accessible by others.
This private key will be ignored.

He bautizado mi par de llaves a 600 para poder acceder a mi instancia personal anoche, y experimenté largamente configurando los permisos en 0 e incluso generando nuevas cadenas de teclas, pero nada parece estar funcionando.

¡Cualquier ayuda en absoluto sería de gran ayuda!


Hm, parece que a menos que los permisos estén establecidos en 777 en el directorio, el script ec2-run-instances no puede encontrar mis archivos de claves. Soy nuevo en SSH, así que podría estar pasando por alto algo.

123
Necesita dar los comandos u = rw y go = chmod para el archivo - lectura/escritura simple solo para el usuario (o simplemente lea/400). Espero esto ayuda.
agregado el autor Aniket Thakur, fuente
@MikeNereson: siéntete libre de editarlo, así es como mejoramos las cosas por aquí
agregado el autor Stu Thompson, fuente
¿Estás seguro de que lo configuraste en 0600 (octal), y no en 600 (decimal)?
agregado el autor hyde, fuente
terrible título para esta pregunta.
agregado el autor MikeNereson, fuente
chmod 400 ~/.ssh/id_rsa Referencia: stackoverflow.com/a/9270753/2082569
agregado el autor atulkhatri, fuente
ec2-run-instances solo debería requerir un nombre de par de claves, que es algo que vive del lado de Amazon. Solo debe usar su clave privada real (la del disco) cuando SSH ingrese. ¿Qué error obtiene de ec2-run-instances?
agregado el autor user27619, fuente

6 Respuestas

He pensado en mi par de llaves a 600 para poder acceder a mi instancia personal anoche,

Y esta es la forma en que se supone que es.

En la documentación de EC2 tenemos "If you" Si usas OpenSSH (o cualquier cliente SSH razonablemente paranoico), entonces probablemente necesites establecer los permisos de este archivo para que solo puedas leerlo. " La documentación de Panda enlaza a enlaces a la documentación de Amazon, pero realmente no lo hace. No transmiten cuán importante es todo esto.

La idea es que los archivos de pares de claves sean como contraseñas y necesiten protección. Entonces, el cliente ssh que está utilizando requiere que esos archivos estén seguros y que solo su cuenta pueda leerlos.

Configurar el directorio a 700 realmente debería ser suficiente, pero 777 no va a doler mientras los archivos sean 600.

Cualquier problema que tengas es del lado del cliente, así que asegúrate de incluir la información del sistema operativo local con cualquier pregunta de seguimiento.

149
agregado
El enlace de @StuThompson a la documentación de EC2 parece estar muerto. ¿Puedes por favor actualizar?
agregado el autor Aniket Thakur, fuente
Nevermind actualizó el enlace. Gracias.
agregado el autor Aniket Thakur, fuente
@tobixen: Llegan dos años, pero ... la solución "correcta" sería colocar la clave en un usuario dedicado, y permitir que los usuarios del grupo sudo accedan a ejecutar ese comando como el usuario dedicado.
agregado el autor Stu Thompson, fuente
haciendo chmod 700 filenmane.pem trabajado, gracias
agregado el autor Rich Fox, fuente
Acabo de entrar hoy en una situación en la que QUIERO que el archivo clave sea legible en grupo (utilizando ssh no para el inicio de sesión personal, sino para ejecutar un script en un servidor remoto, usuario dedicado en el servidor remoto para este fin, authorized_keys bloqueado de modo que solo dicho script se ejecutará, y varias personas en el servidor de origen deberían tener acceso para ejecutar el script). Bueno, supongo que la solución simple es poner copias en ~/.ssh/para todos los usuarios que deberían tener acceso, o rellenar authorized_keys con todas las claves personales.
agregado el autor tobixen, fuente

Make sure that the directory containing the private key files is set to 700

chmod 700 ~/.ec2
40
agregado
Acabo de usar esto en el archivo .pem y funcionó para mí.
agregado el autor CGTheLegend, fuente
¿Algún motivo especial por el que quiera tener privilegios de ejecución en el archivo?
agregado el autor Zoltán, fuente
@ Zoltán es un directorio, no un archivo.
agregado el autor avmohan, fuente
Gracias, esto también funciona para mí.
agregado el autor Rubyrider, fuente
Esta respuesta llega al punto :)
agregado el autor Populus, fuente

Para solucionarlo, 1) deberá restablecer los permisos de nuevo a los valores predeterminados:

sudo chmod 600 ~/.ssh/id_rsa  sudo chmod 600 ~/.ssh/id_rsa.pub

Si obtiene otro error: ¿Estás seguro de que quieres continuar conectando (sí/no)? sí Error al agregar el host a la lista de hosts conocidos (/home/geek/.ssh/known_hosts).

2) Esto significa que los permisos en ese archivo también están configurados incorrectamente, y se pueden ajustar con esto:

sudo chmod 644 ~/.ssh/known_hosts

3) Por último, es posible que también deba ajustar los permisos del directorio:

sudo chmod 755 ~/.ssh

Esto debería volver a ponerlo en funcionamiento.

15
agregado

El archivo de clave privada debe estar protegido. En mi caso, he estado usando la autenticación public_key durante mucho tiempo y solía establecer el permiso como 600 (rw --- ---) para clave privada y 644 (rw- r-- r--) y para la carpeta .ssh en la carpeta de inicio tendrá 700 permisos (rwx --- ---). Para configurar esto, vaya a la carpeta de inicio del usuario y ejecute el siguiente comando


Set the 700 permission for .ssh folder

chmod 700 .ssh


Set the 600 permission for private key file

chmod 600 .ssh/id_rsa


Set 644 permission for public key file

chmod 644 .ssh/id_rsa.pub
5
agregado

Mantenga su clave privada, clave pública, known_hosts en el mismo directorio e intente iniciar sesión como se indica a continuación:

ssh -I(small i) "hi.pem" [email protected]---.us-west-2.compute.amazonaws.com

  • Mismo directorio en el sentido, cd/Users/prince/Desktop Ahora escribe el comando ls debería ver **. pem **. ppk known_hosts

Nota: debe intentar iniciar sesión desde el mismo directorio. De lo contrario, obtendrá el error de permiso denegado, ya que no puede tomar el archivo .ppm de su directorio actual.

1
agregado

Estoy pensando en otra cosa, si intenta iniciar sesión con un nombre de usuario diferente que no existe, este es el mensaje que recibirá.

Así que supongo que es posible que estés intentando chatear con ec2-user pero recuerdo recientemente que la mayoría de los AMI de centos, por ejemplo, están usando centos user en lugar de ec2-user

entonces si eres ssh -i file.pem centos @ public_IP por favor dígame que usted está tratando de obtener el nombre de usuario correcto, de lo contrario esta puede ser una fuerte razón para ver ese mensaje de error incluso con los permisos correctos en su ~/.ssh/id_rsa o file.pem

0
agregado