2010-11-20 8 views
52

Pregunta como título. Por qué es esto, he utilizado el comando ssh: ssh -i mykey.pem [email protected] Pero me sale el error, no encuentro nada en google. ¿Qué estoy haciendo mal?SSHing en el servidor EC2 a través da error Inicie sesión como usuario de usuario ec2 en lugar de usuario raíz

+1

Estaba confundido por el mensaje de error mal puntuado: Intenté iniciar sesión como "usuario" en lugar de "usuario-ec2". Una vez que descubrí ese error, funcionó bien. – offby1

+0

cuando intento iniciar sesión como ec2_user, me pide la contraseña, que, por supuesto, no tengo, ya que no sé nada sobre la AMI – amphibient

Respuesta

73

entra como ec2-user como se sugiere Klaus:

ssh -i key.pem [email protected] 

... y luego utiliza sudo para ejecutar comandos. Por ejemplo, para editar el archivo /etc/hosts que es propiedad de root y requiere privilegios de administrador: sudo nano /etc/hosts.

O ejecuta sudo su para convertirse en el usuario root.

+1

Dónde está esto escrito en documentos de Amazon? No se pudo encontrar ninguna información allí. – jayarjo

+1

http://ec2-downloads.s3.amazonaws.com/AmazonLinuxAMIUserGuide.pdf Till

+0

cuando ejecuto sudo su como el usuario ec2, solicita una contraseña. No he configurado la contraseña yo mismo. algo que ver con el archivo sudoers tal vez? –

7

Creo que es solo pedirle que inicie sesión con otro nombre de usuario. ¿Tiene un usuario llamado ec2-user? Si es así, intente esto en su lugar:

ssh -i mykey.pem [email protected] 
+0

BUt si hago esto, no tengo privilegios de usuario , me pide que inicie sesión como root – Tom

+0

@Tom Cambie a la cuenta raíz una vez que haya iniciado sesión con el comando 'su -' –

+0

¿Qué sucede si desea automatizar este paso y ejecutar comandos con privilegios de raíz desde un script? – OutputLogic

60

De manera predeterminada, root el usuario no puede iniciar sesión, pero puede usar ec2-user como lo indiquen otros.

Una vez que inicie sesión con ec2-user cambie a root y cambie la configuración de SSH.

para convertirse en el usuario root ejecuta:

sudo su - 

Editar el archivo de configuración del demonio SSH /etc/ssh/sshd_config, por ejemplo, usando vi, y reemplazar la entrada PermitRootLogin con lo siguiente:

PermitRootLogin without-password 

recargue la configuración de servidor SSH ejecutando:

/etc/init.d/sshd reload 

El mensaje Please login as the ec2-user user rather than root user. aparece debido a que un comando se ejecuta cuando se conecta con el llave privada. Para eliminar ese comando edite el archivo ~/.ssh/authorized_keys y elimine la opción command. La línea debería comenzar con el tipo de tecla (por ejemplo, ssh-rsa).

(*) Haga bajo su propio riesgo. Te recomiendo que dejes siempre abierta una consola solo en caso de que no puedas iniciar sesión después de realizar los cambios en la configuración.

Como referencia se puede leer las páginas del manual:

man sshd_config 
man sshd 
+11

+1 por recomendar dejar una consola abierta :) – KaKa

+0

Esto funciona. – user435216

+0

Esa es la respuesta que estoy esperando. Gracias –

0

Editar/etc/ssh/sshd_config, y asegurarse de que esto se establece:

PasswordAuthentication sí

vuelva a cargar SSH:

systemctl reload sshd.service

Ya puede inicie sesión como usuarios distintos de ec2-user.

10

He encontrado un problema similar al configurar un clúster hadoop en Amazon ec2.

Mi nodo principal necesita tener acceso root ssh a cada nodo trabajador/esclavo. Alise los conectores agregando la dirección IP, la dirección privada y el nombre de alias de cada nodo esclavo al archivo /etc/hosts/. (Me da que los datos mediante la ejecución del comando echo -e "`hostname -i`\t`hostname -f`\talias-name" donde alias-name es lo que llamo cada nodo (head o n1 por ejemplo). Luego puse que la producción para cada nodo en el expediente de cada nodo /etc/hosts.

El problema que he estado encontrando es que cuando escribo n1 ssh, mientras que en mi nodo principal ssh en mi primer nodo esclavo, me sale el mismo mensaje de error: Please login as the use "ec2-user" rather than the user "root". Así que después de hacer algunas investigaciones, me di cuenta de cómo solucionarlo

primera.:

  • ssh en su servidor. el acceso no root (ec2-user) está bien aquí.
  • Luego, su - entra en la raíz. Ahora vi /etc/ssh/sshd_config y desactive la línea PermitRootLogin yes.
  • Exit vi editor.
  • Ahora reinicie ssh daemon escribiendo service sshd stop luego service sshd start.

Segundo:

  • Ahora, aquí es la parte que tenía que excavar en busca de,
  • plazo vi /root/.ssh/authorized_keys
  • comentario a cabo todo lo que hasta ssh-rsa. Sólo hay que poner un # al principio del contenido del archivo, antes de no-port-forwarding ... y pulse enter en ssh-rsa para moverlo a la siguiente línea (de esta manera no tiene que borrar cualquier cosa en caso de que quiera dar marcha atrás).
  • editor de la salida vi

Ahora usted debería ser capaz de conectarse a la raíz sin que el mensaje de error apareciendo.

Además, si usa alias para una configuración de clúster; Repita los mismos pasos en cada nodo. Primero ssh en el uso de ec2-user luego sigue los pasos. Después de agregar la dirección IP, la dirección privada y la información del nombre del alias a su archivo /etc/hosts, debe poder ingresar a la raíz de cada nodo usando el nombre del alias, por ejemplo ssh n1.

El tutorial Seguí está aquí: https://www.youtube.com/watch?v=xrxQXfE7t9A

Pero que aún no ha discutir el problema con conexión de la raíz.

Espero que ayude! Funcionó para mí

* Tenga en cuenta que no he tomado ninguna seguridad en consideración. Esto es simplemente una configuración de práctica/desarrollo.

+0

gracias :) necesitaba iniciar sesión como root para reenviar el puerto 80 a mi máquina local, lo que no puedo hacer como ec2-user – necromancer

+0

El segundo paso es el truco. ¡Esta debería ser la respuesta aceptada! – stonyau

+0

Esto es una respuesta práctica aws ec2. ¡gracias por esto! –

Cuestiones relacionadas