2010-11-20 4 views
52

Frage als Titel. Warum ist das, ich habe den SSH-Befehl verwendet: ssh -i mykey.pem [email protected] Aber ich bekomme diesen Fehler, finde nichts auf Google. Was mache ich falsch?SSHing in EC2 Server über gibt Fehler Bitte loggen Sie sich als ec2-Benutzer Benutzer statt Root-Benutzer

+1

Ich war durch die schlecht unterbrochene Fehlermeldung verwirrt: Ich versuchte, mich als "Benutzer" anstatt "ec2-Benutzer" anzumelden. Sobald ich diesen Fehler herausgefunden habe, hat es gut funktioniert. – offby1

+0

Wenn ich versuche, mich als ec2_user anzumelden, fragt es mich nach dem passwd, was ich natürlich nicht habe - da ich nichts über den AMI weiß – amphibient

Antwort

73

Sie sich als ec2-user wie Klaus vorgeschlagen:

ssh -i key.pem [email protected] 

... und dann verwenden Sie sudo Befehle auszuführen. Zum Beispiel, um die Datei /etc/hosts zu editieren, die root gehört und Root-Privilegien benötigt: sudo nano /etc/hosts.

Oder Sie sudo su ausführen, um der root Benutzer zu werden.

+1

Wo ist Dies in Amazon Dokumente geschrieben? Konnte dort keine Informationen finden. – jayarjo

+1

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

+0

Wenn ich Sudo su als ec2-Benutzer starte, fragt es nach einem Passwort. Ich habe selbst kein Passwort festgelegt. etwas mit sudoers datei vielleicht zu tun? –

7

Ich denke, es fragt nur Sie mit einem anderen Benutzernamen anmelden. Haben Sie zufällig einen Benutzer namens ec2-user? Wenn ja, versuchen Sie stattdessen:

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

Wenn ich das tue, habe ich keine Benutzerrechte Es fordert mich auf, mich als root anzumelden – Tom

+0

@Tom Sie wechseln zum Root-Account, sobald Sie mit dem Befehl 'su -' eingeloggt sind. –

+0

Was, wenn Sie diesen Schritt automatisieren und root-privilegierte Befehle von einem Skript ausführen möchten? – OutputLogic

60

Standardmäßig root Benutzer ist nicht berechtigt, sich anzumelden, aber Sie können ec2-user wie von anderen angezeigt verwenden.

Sobald Sie sich mit ec2-user anmelden, wechseln Sie zu root und ändern Sie die SSH-Konfiguration.

Um die Root-Benutzer Sie laufen zu werden:

sudo su - 

Bearbeiten der SSH-Daemon-Konfigurationsdatei /etc/ssh/sshd_config, z.B. von vi, und ersetzen Sie den PermitRootLogin Eintrag mit dem folgenden:

PermitRootLogin without-password 

die SSH-Daemon-Konfiguration neu laden, indem Sie:

/etc/init.d/sshd reload 

Die Meldung Please login as the ec2-user user rather than root user. angezeigt, da ein Befehl ausgeführt wird, wenn Sie mit dem Login Privat Schlüssel. Um diesen Befehl zu entfernen, bearbeiten Sie die Datei ~/.ssh/authorized_keys und entfernen Sie die Option command. Die Zeile sollte mit dem Schlüsseltyp beginnen (zB ssh-rsa).

(*) Tun auf eigene Gefahr. Ich empfehle Ihnen, immer eine Konsole offen zu lassen, falls Sie sich nach der Änderung der Konfiguration nicht anmelden können.

Als Referenz können Sie die man-Seiten lesen:

man sshd_config 
man sshd 
+11

+1 für die Empfehlung, eine Konsole offen zu lassen :) – KaKa

+0

Dies macht den Trick. – user435216

+0

Das ist die Antwort, die ich erwarte. Danke –

0

Datei/etc/ssh/sshd_config, und stellen Sie sicher, dass dies festgelegt ist:

PasswordAuthentication ja

Dann SSH nachladen:

systemctl reload sshd.service

Sie können jetzt Melden Sie sich als Benutzer außer ec2-user an.

10

Ich habe ein ähnliches Problem bei der Einrichtung eines Hadoop-Cluster auf Amazon ec2 festgestellt.

Mein Kopfknoten muss root ssh-Zugriff auf jeden Arbeiter/Slave-Knoten haben. Ich habe die Verbindungen aliasiert, indem ich die IP-Adresse, die private Adresse und den Alias-Namen jedes Slave-Knotens der Datei /etc/hosts/ hinzugefügt habe. (Ich, dass die Daten erhalten, indem man den Befehl echo -e "`hostname -i`\t`hostname -f`\talias-name" wo alias-name nenne ich jeden Knoten (head oder n1 zum Beispiel). Dann habe ich die Ausgabe für jeden Knoten in jedem /etc/hosts Datei des Knotens.

Das Problem Ich habe Begegnung das ist, wenn ich ssh n1 geben, während in meinem Kopf Knoten in meinem ersten Slave-Knoten ssh ich, dass dieselbe Fehlermeldung erhalten: Please login as the use "ec2-user" rather than the user "root". Also nach einigen Recherchen habe ich herausgefunden, wie es zu beheben

erste.:

  • ssh in Ihren Server. Nicht-Root (ec2-user) Zugriff ist hier in Ordnung.
  • Dann su - Ihren Weg in die Wurzel. Jetzt vi /etc/ssh/sshd_config und un-Kommentar die Zeile PermitRootLogin yes.
  • Exit vi Editor.
  • Starten Sie nun den ssh-Daemon neu, indem Sie service sshd stop und dann service sshd start eingeben.

Zweitens:

  • Nun, hier ist der Teil I für,
  • Lauf vi /root/.ssh/authorized_keys
  • Kommentieren Sie alles bis zu ssh-rsa. Nur eine # an den Anfang zu graben hatte der Datei Inhalt, vor no-port-forwarding ... und drücken Sie die Eingabetaste ssh-rsa, um es auf die nächste Zeile zu verschieben (auf diese Weise nicht muss alles löschen, falls Sie zurückverfolgen möchten.
  • Ausgang vi Editor

Jetzt sollten Sie in der Lage sein, um root einzuloggen, ohne dass Fehlermeldung auftauchen.

Wenn Sie Aliase für ein Cluster-Setup verwenden; Wiederholen Sie die gleichen Schritte für jeden Knoten. Zuerst ssh mit ec2-user und dann den Schritten folgen. Nachdem Sie Ihrer Datei /etc/hosts die IP-Adresse, die private Adresse und den Alias-Namen hinzugefügt haben, sollten Sie in der Lage sein, in den Wurzelbereich jedes Knotens mit dem Alias-Namen beispielsweise ssh n1 zu gelangen.

Das Tutorial I ist hier folgt: https://www.youtube.com/watch?v=xrxQXfE7t9A

Aber es hat nicht das Problem mit Root-Login zu diskutieren.

Hoffe, dass hilft! Es hat für mich funktioniert.

* Denken Sie daran, dass ich keine Sicherheit in Betracht gezogen habe. Dies ist einfach eine Übung/Dev-Setup.

+0

danke :) Ich musste mich als root anmelden, um Port 80 an meine lokale Maschine weiterzuleiten, was ich nicht als ec2-Benutzer tun kann. – necromancer

+0

Zweiter Schritt ist der Trick. Dies sollte die akzeptierte Antwort sein! – stonyau

+0

Dies ist praktisch aws ec2 Antwort. Danke dafür! –

Verwandte Themen