¿Cómo configuro el acceso SSH para una instancia Amazon EC2?


87

Necesito acceso SSH a una instancia Amazon EC2 con Ubuntu 10.4. Todo lo que tengo es el nombre de usuario y la contraseña de Amazon. ¿Algunas ideas?


2
No olvide ejecutar chmod 400 my_private_key.pem.txt después de descargarlo.
Peter Kaminski

Respuestas:


159

Básicamente, necesita un archivo de clave privada para iniciar sesión en su EC2 a través de SSH. Siga estos pasos para crear uno:

  • Vaya a https://console.aws.amazon.com/ec2/home e inicie sesión en su cuenta de Amazon existente.
  • Haga clic en "Key Pairs" en LHS o https://console.aws.amazon.com/ec2/home?region=us-east-1#s=KeyPairs .
    • Debería ver la lista de CLAVES generadas por usted (o durante el proceso de creación de EC2).
    • Haga clic en "Crear par de claves" si no ve ninguna o si perdió su clave privada.
    • Ingrese un nombre único y presione enter.
    • Aparecerá un panel de descarga para que guarde la clave privada, guárdela.
    • Guárdelo en algún lugar con el permiso de archivo "0600"
  • Haga clic en "Instancias" en LHS o https://console.aws.amazon.com/ec2/home?region=us-east-1#s=Instances
    • Debería ver la lista de instancias ec2, si no ve ninguna, cree una.
    • Haga clic en la máquina EC2 y anote la dirección DNS pública.
  • Abra su Terminal (en Linux) y escriba el siguiente comando
    • ssh -i /path/to/private-key root@<ec2-public-dns-address>- El nombre de usuario raíz se ha evitado en las últimas versiones, según su selección de distribución ec2-usero ubuntucomo su nombre de usuario.
    • Presione enter
    • Eso es.

6
Probablemente no pueda iniciar sesión como root directamente a través de ssh. Tendrá que usar una cuenta que no sea root, como ec2-user, por lo que 'ssh -i / path / to / private-key ec2-user @ hostname
timbo

4
Una vez que intenté conectarme, me dijo que debería usar ubuntulogin en lugar de root. Aparentemente tengo la instancia del servidor ubuntu 12.04.
Vasiliy Stavenko

3
Creé con éxito una cuenta SSH, a continuación, ¿cómo cargar archivos usando SCP con la cuenta creada? Cuando intento cargar usando SCP, dice "Permiso denegado (clave pública)".
Ashok KS

5
todavía recibo este masaje "Permiso denegado (clave pública)". ¿Porqué es eso?
Kasun Kariyawasam

2
Todos reciben "Permiso denegado (clave pública)". puede estar usando Elastic Beanstalk. Si es así, debe ir a EB env Config, Security y elegir el nuevo par de claves. Se crearán nuevas instancias EC2 que acepten la clave. Y el nombre de usuario es ec2-usero quizás ubuntu, pero no root.
Jorge Orpinel

25
ssh -i /path/to/private-key ubuntu@<ec2-public-dns-address>

solo use en ubuntulugar de root. Su problema será resuelto. ¡Salud!


12

PASO 1) Descargue las claves privadas asignadas a su máquina ec2 (que solo se descarga una vez cuando se crea. Por lo tanto, se recomienda confirmar en algún lugar)

PASO 2) y dispare los siguientes comandos,

chmod 400 MyKeyPair.pem
ssh -i MyKeyPair.pem ec2-user@ec2-198-51-100-1.compute-1.amazonaws.com

Documento oficial : Conexión a sus instancias de Linux / Unix mediante SSH


7

Tenga en cuenta que el usuario actual para 13.04 es "ubuntu" ssh -i ./mykey.pem ubuntu@ec2-xxx-xxx-xxx-1.compute-1.amazonaws.com


4

Primero debe crear un par de claves; hágalo utilizando su consola EC2. Luego use su clave privada para SSH en el servidor (el nombre de usuario es ec2-user) usando un cliente SSH de su elección.

Una vez dentro, puede emitir un sudo su -para obtener root si lo desea (nota: no puede iniciar sesión como root directamente).


4

Si está utilizando MacOS, debe crear / editar el archivo de configuración SSH (~ / .ssh / config) y poner algo como:

Host *.amazonaws.com
    User ubuntu
    Port 22
    StrictHostKeyChecking no
    UserKnownHostsFile=/dev/null
    IdentityFile ~/PATH/YOUR_DOWNLOADED_KEY.pem

Luego, para conectarse a cualquiera de las instancias EC2:

ssh MYNAME.amazonaws.com

¡Nada mas!


¿Qué pasa si tengo una clave de varios amigos para diferentes regiones como us-east-1.pem y us-west-2.pem?
Haseeb

1

Para configurar Ubuntu en AWS, siga los siguientes pasos:

  1. Inicie sesión en Amazon Web Services y seleccione EC2 .
  2. Elija Launch Instance y siga el asistente seleccionando la imagen correcta (Ubuntu), el tipo de instancia, configurando la red y subred de VPC, el almacenamiento y permitiendo el acceso SSH en los grupos de seguridad . Luego lanza .
  3. Por primera vez, probablemente necesite configurar el par de claves y asignarlo a la instancia. También puede crear un par de claves en Key Pairs . Una vez creado, descargue el archivo PEM y guárdelo en un lugar seguro.
  4. Una vez que se lanza la instancia, espere hasta que la instancia se inicialice y se esté ejecutando .

Para acceder a la instancia a través de SSH, ejecute:

  1. Conéctese a la caja de Linux especificando su archivo PEM, por ejemplo

    ssh -i "file.pem" ubuntu@x.x.x.x
    

    Asegúrese de que su archivo PEM tenga el permiso 600 ( chmod 600 file.pem).

Solución de problemas

Si está ejecutando una instancia de VPC, y su grupo de seguridad es correcto (con las reglas correctas) y aún no funciona, en la sección de VPC verifique su subred que debe estar adjunta a su VPC (ambas usadas por su instancia) y configure nueva regla en la tabla de ruta que tiene 0.0.0.0/0como destino y su puerta de enlace de Internet como destino .

Para obtener más detalles, consulte: Solución de problemas de conexión a su instancia

Consulte también: Posibles motivos del tiempo de espera al intentar acceder a la instancia EC2


1

1) En primer lugar chmodel .pem filede restringir los permisos en archivos de la siguiente manera

chmod 400 my-key-pair.pem

2) Luego, sshcon los siguientes comandos directamente desde la .sshcarpeta

ssh -i my-key-pair.pem ec2-user@ec2-198-99-90-3.compute-1.amazonaws.com

Nota: - Para navegar a la .sshcarpeta. Primero presione Ctrl + Hpara mostrar todos los archivos ocultos y finalmentecd .ssh


0

No iniciar sesión como el usuario correcto para su OS Distro podría ser el problema. Para ciertas AMI nuevas, el nombre de usuario puede no ser "ubuntu", sino "ec2-user". Para Amazon Linux, por ejemplo, creo que el usuario es "ec2-user". Eric Hammond da ejemplos aquí: http://alestic.com/2014/01/ec2-ssh-username

Mi sugerencia, prueba:

ssh -i /path/to/file.pem ec2-user@ec2...

ssh -i /path/to/file.pem ubuntu@ec2...

ssh -i /path/to/file.pem root@ec2...

Si tiene la AMI incorrecta, es posible que desee reiniciar la máquina por completo para tener uniformidad entre sus grupos. Si este es su problema, probablemente querrá la misma distribución del sistema operativo al menos para sus cajas de Linux.


0

Hacer lo que se sugiere en todas estas respuestas no es suficiente. En cada instancia, ve un grupo de seguridad. Cuando lance una nueva instancia, tendrá esto configurado como predeterminado. Necesita editar el grupo de seguridad y agregarle el puerto ssh. Más tarde, debe agregar los puertos 8080, 8443, 80, 443 también cuando desee alojar su sitio web.


0

Acepté la oferta de AWS para utilizar los grupos de seguridad predeterminados que incluían los puertos "Todos los tráficos".

Y, después de muchas y muchas veces intentar conectarme en mi nueva instancia ec2, ¡me acabo de dar cuenta de que debería editar mi grupo de seguridad usado y agregar manualmente al puerto 22 entrante y saliente (ssh)!

Espero eso ayude !


0

Primero cambie el permiso del archivo pem por

chmod 400 path/to/key_pair.pem

Dentro del archivo ~ / .ssh / config agregue las siguientes líneas, en la parte superior del archivo

Host AWS
     Hostname myserver.com
     User myuser
     IdentityFile path/to/.pem/file
     port 22

El nombre de host toma la IP o el enlace del servidor, el usuario toma el nombre de usuario del servidor y el archivo de identidad es el archivo descargado de AWS cuando creó la instancia. Simplemente ejecute el siguiente comando en la terminal

ssh AWS

¡y disfrútalo!

Nota : para navegar a la .sshcarpeta. Primero presione Ctrl + Hen la carpeta de inicio para mostrar todos los archivos ocultos y finalmentecd .ssh


0

Asegúrate de que estas cosas estén bajo control

  1. la clave privada debe tener 400 permisos

  2. Asegúrese de que el puerto 22 esté abierto para la instancia de AWS a la que intenta acceder.

  3. ssh -i privatekey.pem ubuntu@XXX.XXX.XXX.XXX // XXX.XXX.XXX.XXX = su IP pública de instancia
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.