Pregunta Intentando SSH en una instancia de Amazon Ec2 - error de permiso


Esta es probablemente una pregunta estúpidamente simple para algunos :)

Creé una nueva instancia de Linux en Amazon EC2, y como parte de eso descargué el archivo .pem para permitirme SSH en.

Cuando intenté hacer ssh con:

ssh -i myfile.pem <public dns>

Tengo:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for 'amazonec2.pem' are too open.
It is recommended that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: amazonec2.pem
Permission denied (publickey).

Siguiendo esta publicación Traté de chmod +600 el archivo pem, pero ahora cuando ssh obtengo:

Permission denied (publickey).

¿Qué error de colegial estoy haciendo aquí?  El archivo .pem está en mi carpeta de inicio (en osx). Sus permisos se ven así:

-rw-------@   1 mattroberts  staff    1696 19 Nov 11:20 amazonec2.pem

531
2017-11-19 11:35


origen


Respuestas:


El problema es tener una modificación incorrecta en el archivo.

Fácilmente resuelto ejecutando -

chmod 400 mykey.pem

Tomado de las instrucciones de Amazon -

Su archivo de clave no debe ser visible públicamente para que SSH funcione. Utilizar esta   comando si es necesario: chmod 400 mykey.pem


1057
2018-05-30 18:23



Probablemente estés usando el nombre de usuario incorrecto para iniciar sesión:

  • la mayoría de las imágenes de Ubuntu tienen un usuario ubuntu
  • AMI de Amazon es ec2-user
  • la mayoría de las imágenes de Debian tienen root o admin

Para iniciar sesión, debe ajustar su comando ssh:

ssh -l USERNAME_HERE -i .ssh/yourkey.pem public-ec2-host

HTH


247
2017-11-19 16:58



Sé que esto es muy tarde al juego ... pero esto siempre funciona para mi:

paso 1

ssh-add ~/.ssh/KEY_PAIR_NAME.pem

paso 2, simplemente ssh in :)

ssh user_name@<instance public dns/ip>

p.ej.

ssh ec2-user@ec2-198-51-100-1.compute-1.amazonaws.com

Espero que esto ayude a alguien.


54
2017-10-02 11:02



Ok hombre, lo único que funcionó para mí fue:

  1. Cambiar permisos de la clave

    chmod 400 mykey.pem

  2. Asegúrese de iniciar sesión usando ec2-usuarioy la dirección correcta ec2-99 ... La dirección ec2-99 se encuentra en la parte inferior de la consola de Aws cuando inicia sesión y ve su instancia listada

    ssh -i mykey.pem ec2-user@ec2-99-99-99-99.compute-1.amazonaws.com


37
2018-04-10 04:57



Echa un vistazo a Este artículo. No usas el DNS público sino el formulario

ssh -i your.pem root@ec2-XXX-XXX-XXX-XXX.z-2.compute-1.amazonaws.com

donde el nombre es visible en su panel AMI


26
2017-11-19 11:43



Cambie el permiso para el archivo de clave con:

chmod 400 key-file-name.pem

Consulte la documentación de AWS para conectarse a la instancia:

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html#EC2_ConnectToInstance_Linux


14
2017-07-08 20:49



En la terminal Mac, hacer "chmod 400 xyz.pem" no me ayudó, seguía diciendo que se negaba el permiso. Para los usuarios de ubuntu sugeriría

  1. ssh-add xyz.pem
  2. ssh -i xyz.pem ubuntu@ec2-54-69-172-118.us-west-2.compute.amazonaws.com  (observe que el usuario es ubuntu)

6
2018-04-07 03:41



Sé que ya se ha respondido esta pregunta, pero para aquellos que los han probado todos y aún recibes el molesto "Permiso denegado (publickey)". Intenta ejecutar tu comando con SUDO. Por supuesto, esta es una solución temporal y debe establecer los permisos correctamente, pero al menos eso le permitirá identificar que su usuario actual no se está ejecutando con los privilegios que necesita (como suponía)

sudo ssh -i amazonec2.pem ec2-xxx-xxx-xxx-xxx.us-west-2.compute.amazonaws.com

Una vez que hagas esto, recibirás un mensaje como este:

Please login as the user "ec2-user" rather than the user "root"

Que también está escasamente documentado. En ese caso solo haz esto:

sudo ssh -i amazonec2.pem ec2-xxx-xxx-xxx-xxx.us-west-2.compute.amazonaws.com -l ec2-user

Y obtendrás el glorioso:

   __|  __|_  )
   _|  (     /   Amazon Linux AMI
  ___|\___|___|

5
2017-10-07 14:43



Claves de SSH y mejores prácticas de permisos de archivos:

  • .ssh directory - 0700 (solo por el propietario)
  • archivo de clave privada / .pem - 0400 (solo leído por el propietario)
  • archivo de clave pública / .pub - 0600 (solo lectura y escritura por el propietario)

    chmod XXXX file/directory


4
2018-01-07 23:42



ssh -i /.pem usuario @ host-máquina-IP

Creo que es porque o bien has ingresado credenciales incorrectas o está utilizando una clave pública en lugar de una clave privada o, sus permisos de puerto están abiertos para TODO a ssh. Esto es malo para Amazon.


3
2017-09-28 08:20



Inicio de sesión alternativo utilizando PuTTY. Es bueno, pero necesita algunos pasos.

  1. Obtenga su .pem que se generó cuando creó por primera vez la instancia de EC2.
  2. Convierta el archivo .pem .ppk usando PuttyGen ya que PuTTY no lee .pem.
  3. Abra PuTTY e ingrese su Nombre de host que es el nombre de usuario de su instancia + DNS público (por ejemplo, ubuntu@ec2-xxx-xxx-xxx-xxx.region.compute.amazonaws.com). No es su nombre de usuario de cuenta de AWS.
  4. Luego navega hacia Conexión> SSH> Auth. Luego agrega tu .ppk archivo. Haga clic en Vistazo En donde dice "Archivo de clave privada para autenticación".
  5. Haga clic en Abrir y podrá establecer de inmediato la conexión.

Estoy usando PuTTY 0.66 en Windows.


3
2018-04-14 12:54