¿Cómo conectarse a una instancia de AWS a través de ssh?
Yo tengo:
- Registrado en AWS;
- Creé una clave pública y un certificado en el sitio web de AWS y los guardé en el disco;
Fui a mi consola y creé variables de entorno:
$ export JAVA_HOME=/usr/lib/jvm/java-6-openjdk/ $ export EC2_CERT=/home/default/aws/cert-EBAINCRNWHDSCWWIHSOKON2YWGJZ5LSQ.pem $ export EC2_PRIVATE_KEY=/home/default/aws/pk-EBAINCRNWHDSCWWIHSOKON2YWGJZ5LSQ.pem
Le dije a AWS API que usara este par de claves y lo guardó en el archivo:
$ ec2-add-keypair ec2-keypair > ec2-keypair.pem
Comencé una instancia de AWS Ubuntu 9 usando este par de claves:
$ ec2-run-instances ami-ed46a784 -k ec2-keypair
Intentó establecer una conexión ssh con la instancia:
$ ssh -v -i ec2-keypair.pem [email protected] OpenSSH_5.1p1 Debian-5ubuntu1, OpenSSL 0.9.8g 19 Oct 2007 debug1: Reading configuration data /etc/ssh/ssh_config debug1: Applying options for * debug1: Connecting to ec2-174-129-185-190.compute-1.amazonaws.com [174.129.185.190] port 22. debug1: Connection established. debug1: identity file ec2-keypair.pem type -1 debug1: Remote protocol version 2.0, remote software version OpenSSH_5.1p1 Debian-5ubuntu1 debug1: match: OpenSSH_5.1p1 Debian-5ubuntu1 pat OpenSSH* debug1: Enabling compatibility mode for protocol 2.0 debug1: Local version string SSH-2.0-OpenSSH_5.1p1 Debian-5ubuntu1 debug1: SSH2_MSG_KEXINIT sent debug1: SSH2_MSG_KEXINIT received debug1: kex: server->client aes128-cbc hmac-md5 none debug1: kex: client->server aes128-cbc hmac-md5 none debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP debug1: SSH2_MSG_KEX_DH_GEX_INIT sent debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY debug1: Host 'ec2-174-129-185-190.compute-1.amazonaws.com' is known and matches the RSA host key. debug1: Found key in /home/default/.ssh/known_hosts:11 debug1: ssh_rsa_verify: signature correct debug1: SSH2_MSG_NEWKEYS sent debug1: expecting SSH2_MSG_NEWKEYS debug1: SSH2_MSG_NEWKEYS received debug1: SSH2_MSG_SERVICE_REQUEST sent debug1: SSH2_MSG_SERVICE_ACCEPT received debug1: Authentications that can continue: publickey debug1: Next authentication method: publickey debug1: Trying private key: ec2-keypair.pem debug1: read PEM private key done: type RSA debug1: Authentications that can continue: publickey debug1: No more authentication methods to try. Permission denied (publickey).
¿Cuál podría ser el problema y cómo hacer que funcione?
Respuestas:
Para instancias de Ubuntu:
Para otros casos, puede que tenga que usar en
ec2-user
lugar deubuntu
.La mayoría de las imágenes de Linux EC2 que he usado solo tienen el usuario root creado de forma predeterminada.
Ver también: http://www.youtube.com/watch?v=WBro0TEAd7g
fuente
Ahora es:
fuente
Los lanzamientos de Canonical usan el usuario 'ubuntu' por defecto para cualquier persona que aterrice aquí con una imagen de ubuntu que tenga el mismo problema.
fuente
Si está utilizando una imagen de Bitnami, inicie sesión como 'bitnami'.
Parece obvio, pero algo que pasé por alto.
fuente
Seems <sarcasm>obvious</sarcasm>
Para mis imágenes de ubuntu, en realidad es usuario de ubuntu y NO el usuario de ec2;)
fuente
Ubuntu 10.04 con openSSH
Este es el uso exacto:
por ejemplo:
el ejemplo anterior se tomó directamente del tutorial de AWS para conectarse a una máquina Linux / UNIX en: http://docs.amazonwebservices.com/AWSEC2/latest/GettingStartedGuide/
fuente
También se quejará si los permisos del archivo pem son demasiado abiertos. chmod el archivo a 600 para arreglar eso.
fuente
chmod 600 your_file.pem
También me encontré con esto, resulta que estaba usando un AMI creado por la comunidad, y el nombre de usuario predeterminado era niehter root, ni ect-user ni ubuntu. De hecho, no tenía idea de qué era, hasta que probé ' root ' y el servidor me pidió amablemente que iniciara sesión como xxx, donde xxx es lo que te dice.
-¡salud!
fuente
Necesita tener su clave privada en su máquina local
Debe conocer la dirección IP o el nombre DNS de su máquina o servidor remoto, puede obtenerlo desde la consola de AWS
Si eres un usuario de Linux
chmod 600 <path to private key file>
)ssh -i <path to private key file> <user>@<IP address or DNS name of remote server>
)Si eres un usuario de Windows
fuente
utilizar...
no use el permiso 600; de lo contrario, podría sobrescribir su clave accidentalmente.
fuente
esto funcionó para mí:
para eliminar las claves antiguas almacenadas en la estación de trabajo también funciona en lugar de
luego haciendo el mismo ssh nuevamente funcionó:
en instancias de ubuntu el nombre de usuario es: ubuntu en Amazon Linux AMI el nombre de usuario es: ec2-user
No tuve que volver a crear la instancia a partir de una imagen.
fuente
Para las instancias de Debian EC2, el usuario es
admin
.fuente
Hay 2 pasos para conectarse:
Chmod 400 en su clave privada, así los demás no pueden acceder a su clave:
Para conectarse a su instancia en SSH, debe conocer la dirección IP pública de su instancia:
Espero eso ayude !
fuente
Si está utilizando EBS, también puede intentar montar el Volumen EBS en una instancia en ejecución. Luego móntelo en esa instancia en ejecución y vea lo que sucede en / home. Puedes ver cosas como ¿es el usuario ubuntu o ec2-user? o tiene las claves públicas correctas en ~ / .ssh / Authorizedkeke
fuente
El permiso para
ec2-keypair.pem
debe ser400
chmod 400 ec2-keypair.pem
fuente
Si está ejecutando la imagen de AWS desde Bitnami. El nombre de usuario sería bitnami. ¡Salud!
mira mi depuración y mira la última:
* *
* *
fuente
En mi caso (Mac OS X), el problema era el tipo de interrupción del archivo. Prueba esto:
1.- Abra el archivo .pem con TextWrangler
2.- En la parte inferior de la aplicación, verifique si el Tipo de interrupción es "Windows (CRLF)".
fuente
Su usuario ec2 para Amazon Linux AMI y ubuntu para imágenes de Ubuntu. Además, RHEL 6.4 y posterior ec2-user RHEL 6.3 y anterior root Fedora ec2-user Centos root
fuente
Solo agregando a esta lista. Esta mañana tuve problemas con un nuevo usuario recién agregado a una instancia de AWS EC2. Para ir al grano, el problema era selinux (que era hacer cumplir modo ), junto con el hecho de que mi directorio de inicio de usuario estaba en un nuevo volumen adjunto de EBS. De alguna manera, supongo que a selinux no le gusta ese otro volumen. Me tomó un tiempo darme cuenta, mientras revisaba todos los otros problemas habituales de ssh (/ etc / ssh / sshd_config estaba bien, por supuesto, no se permitía contraseña, los permisos eran correctos, etc.)
¿La solución?
Por ahora (hasta que entienda cómo permitir que un usuario ssh a un volumen diferente, o de alguna manera hacer que ese volumen sea un punto de inicio de buena fe):
Eso es. Ahora mi nuevo usuario puede iniciar sesión, utilizando su propia clave id_rsa.
fuente
Tuve el mismo problema. Permiso denegado (publickey) al intentar iniciar sesión con 'ec2-user' o con 'root'.
Busqué en Google el número AMI de la imagen de la máquina y tenía la información de inicio de sesión SSH directamente en la página wiki de Debian.
Espero que esto ayude.
fuente