Antworten:
Grundsätzlich benötigen Sie eine Private-Key-Datei, um sich über SSH bei Ihrem EC2 anzumelden. Führen Sie die folgenden Schritte aus, um eine zu erstellen:
ssh -i /path/to/private-key root@<ec2-public-dns-address>
- Der Root-Benutzername wurde in den neuesten Versionen aufgrund Ihrer Distributionsauswahl ec2-user
oder ubuntu
Ihres Benutzernamens vermieden .ubuntu
stattdessen Login verwenden sollte root
. Anscheinend habe ich Ubuntu Server 12.04 Instanz.
ec2-user
oder vielleicht ubuntu
, aber nicht root
.
ssh -i /path/to/private-key ubuntu@<ec2-public-dns-address>
benutze einfach ubuntu
statt root
. Ihr Problem wird gelöst. Prost!
SCHRITT 1) Laden Sie private Schlüssel herunter, die Ihrem ec2-Computer zugewiesen sind (dies ist nur ein einmaliger Download beim Erstellen . Es wird daher empfohlen, irgendwo einen Commit durchzuführen).
SCHRITT 2) und feuern Sie folgende Befehle ab,
chmod 400 MyKeyPair.pem
ssh -i MyKeyPair.pem ec2-user@ec2-198-51-100-1.compute-1.amazonaws.com
Offizielles Dokument : Herstellen einer Verbindung zu Ihren Linux / Unix-Instanzen über SSH
Sie müssen zuerst ein Schlüsselpaar erstellen - tun Sie dies mit Ihrer EC2-Konsole. Verwenden Sie dann Ihren privaten Schlüssel, um ec2-user
mit einem SSH-Client Ihrer Wahl SSH auf den Server zu übertragen (der Benutzername lautet ).
Einmal in, können Sie ein ausgeben sudo su -
, um root zu gewinnen, wenn Sie möchten (Hinweis: Sie können sich nicht direkt als root anmelden).
Wenn Sie MacOS verwenden, sollten Sie eine SSH-Konfigurationsdatei (~ / .ssh / config) erstellen / bearbeiten und Folgendes einfügen:
Host *.amazonaws.com
User ubuntu
Port 22
StrictHostKeyChecking no
UserKnownHostsFile=/dev/null
IdentityFile ~/PATH/YOUR_DOWNLOADED_KEY.pem
So stellen Sie eine Verbindung zu einer der EC2-Instanzen her:
ssh MYNAME.amazonaws.com
Nichts mehr!
Führen Sie die folgenden Schritte aus, um Ubuntu unter AWS einzurichten:
Führen Sie Folgendes aus, um über SSH auf die Instanz zuzugreifen:
Stellen Sie eine Verbindung zur Linux-Box her, indem Sie Ihre PEM-Datei angeben, z
ssh -i "file.pem" ubuntu@x.x.x.x
Stellen Sie sicher, dass Ihre PEM-Datei über 600 Berechtigungen verfügt ( chmod 600 file.pem
).
Wenn Sie mit VPC - Instanz und Ihre Sicherheitsgruppe korrekt ist (mit den richtigen Regeln) und es immer noch nicht funktioniert, in VPC Abschnitt überprüfen Sie Ihre Subnetz , die auf Ihren angebracht werden sollten VPC (beide verwendeten durch die Instanz) und Setup Neue Regel in der Routentabelle , die 0.0.0.0/0
als Ziel und Ihr Internet-Gateway als Ziel hat .
Weitere Informationen finden Sie unter: Fehlerbehebung beim Herstellen einer Verbindung zu Ihrer Instanz
Siehe auch: Mögliche Gründe für eine Zeitüberschreitung beim Versuch, auf die EC2-Instanz zuzugreifen
1) Zuerst chmod
die .pem file
zur Einschränkung der Dateiberechtigungen wie folgt
chmod 400 my-key-pair.pem
2) Dann
ssh
mit den folgenden Befehlen direkt aus dem .ssh
Ordner
ssh -i my-key-pair.pem ec2-user@ec2-198-99-90-3.compute-1.amazonaws.com
Hinweis: - Zum Navigieren in einen .ssh
Ordner. Drücken Sie zuerst Ctrl + H
, um alle versteckten Dateien anzuzeigen, und schließlichcd .ssh
Wenn Sie sich nicht als der richtige Benutzer für Ihre Betriebssystemdistribution anmelden, kann dies das Problem sein. Für bestimmte neue AMI lautet der Benutzername möglicherweise nicht "ubuntu", sondern "ec2-user". Für Amazon Linux glaube ich zum Beispiel, dass der Benutzer "ec2-user" ist. Eric Hammond gibt hier Beispiele: http://alestic.com/2014/01/ec2-ssh-username
Mein Vorschlag, versuchen Sie:
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...
Wenn Sie das falsche AMI haben, möchten Sie den Computer möglicherweise nur vollständig neu starten, damit Ihre Cluster einheitlich sind. Wenn dies Ihr Problem ist, möchten Sie wahrscheinlich zumindest für Ihre Linux-Boxen die gleichen OS-Distributionen.
Es reicht nicht aus, das zu tun, was in all diesen Antworten vorgeschlagen wird. Für jede Instanz sehen Sie eine Sicherheitsgruppe. Wenn Sie eine neue Instanz starten, wird dieses Element auf die Standardeinstellung gesetzt. Sie müssen die Sicherheitsgruppe bearbeiten und den SSH-Port hinzufügen. Später müssen Sie die Ports 8080, 8443, 80, 443 hinzufügen, auch wenn Sie Ihre Website hosten möchten.
Ich habe das AWS-Angebot angenommen, die Standardsicherheitsgruppen zu verwenden, die "All Trafic" -Ports enthalten.
Und nachdem ich viele Male versucht hatte, eine Verbindung zu meiner neuen ec2-Instanz herzustellen, wurde mir gerade klar, dass ich meine verwendete Sicherheitsgruppe bearbeiten und den 22-Port (ssh) manuell zu Inbound und Outbound hinzufügen sollte!
Ich hoffe es hilft !
Ändern Sie zuerst die Berechtigung der PEM-Datei durch
chmod 400 path/to/key_pair.pem
Fügen Sie in der Datei ~ / .ssh / config die folgenden Zeilen oben in die Datei ein
Host AWS
Hostname myserver.com
User myuser
IdentityFile path/to/.pem/file
port 22
Hostname nehmen IP oder Link des Servers, Benutzer nehmen Benutzername des Servers und Identitätsdatei ist eine Datei, die von AWS heruntergeladen wurde, als Sie die Instanz erstellt haben. Führen Sie einfach den folgenden Befehl im Terminal aus
ssh AWS
und geniesse es!
Hinweis : Zum Navigieren in einen .ssh
Ordner. Drücken Sie zuerst Ctrl + H
in den Home-Ordner, um alle versteckten Dateien anzuzeigen, und schließlichcd .ssh
Stellen Sie sicher, dass diese Sache in Schach ist
Der private Schlüssel muss 400 Berechtigungen haben
Stellen Sie sicher, dass Port 22 für die AWS-Instanz geöffnet ist, auf die Sie zugreifen möchten.
ssh -i privatekey.pem ubuntu@XXX.XXX.XXX.XXX
// XXX.XXX.XXX.XXX = Ihre öffentliche IP-Instanz