Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
Warum erhalte ich die Fehlermeldung „Server refused our key“, wenn ich versuche, über SSH eine Verbindung zu meiner EC2-Instance herzustellen?
Ich erhalte die Fehlermeldung „Server refused our key“, wenn ich über SSH eine Verbindung zu meiner Amazon Elastic Compute Cloud (Amazon EC2)-Instance herstelle.
Lösung
Der SSH-Server (sshd) kann einen privaten SSH-Schlüssel aus einem der folgenden Gründe ablehnen:
- Du hast die falsche private Schlüsseldatei verwendet, als du eine Verbindung zur Amazon EC2-Instance hergestellt hast. Informationen zur Behebung dieses Problems findest du unter Warum erhalte ich die Fehler „imported-openssh-key“ oder „PuTTY Fatal Error“, wenn ich eine Verbindung zu meiner Amazon EC2 Linux-Instance herstelle?
- Jemand hat die SSH-Servereinstellungen in /etc/ssh/sshd_config geändert. Informationen zur Behebung dieses Problems findest du unter Wie verwende ich SSH, um auf meine EC2-Instance zuzugreifen, nachdem ich die sshd_config-Datei der Instance geändert habe?
- Das Betriebssystem (OS) konnte die /etc/fstab-Stammverzeichnisse nicht einbinden. Informationen zur Behebung dieses Problems findest du unter Warum wechselt meine EC2-Linux-Instance in den Notfallmodus, wenn ich versuche, sie zu starten?
- Du hast den falschen Benutzernamen für das Amazon Machine Image (AMI) verwendet, als du eine Verbindung zur Amazon EC2-Instance hergestellt hast. Eine Liste der gültigen Benutzernamen findest du unter Fehler: Der Server hat unseren Schlüssel abgelehnt oder Es sind keine unterstützten Authentifizierungsmethoden verfügbar.
- Jemand hat den Benutzer vom Server gelöscht. Um dieses Problem zu beheben, füge den Benutzer als neuen Benutzer wieder zum Server hinzu.
Möglicherweise erhältst du auch die FehlermeldungServer refused our key, wenn die Instance Probleme mit den Berechtigungen hat oder ein Verzeichnis fehlt. Verwende eine der folgenden Methoden, um deine Instance-Berechtigungen und Verzeichnisse zu überprüfen.
Verwendung der seriellen EC2-Konsole
Wenn du die serielle EC2-Konsole für Linux aktiviert hast, kannst du die serielle Konsole verwenden, um Fehler bei unterstützten Nitro-basierten Instance-Typen zu beheben.
Verwendung von Systems Manager, um dich bei der Instance anzumelden und die Berechtigungen zu überprüfen
Voraussetzung: Installiere den AWS Systems Manager Agent (SSM Agent). Stelle außerdem sicher, dass die Konfiguration die Voraussetzungen für Session Manager erfüllt, eine Funktion von AWS Systems Manager.
Gehe wie folgt vor, um mit Session Manager Fehler in der Instance zu beheben:
-
Öffne die Systems Manager-Konsole.
-
Um sicherzustellen, dass die Dateien im home (Stamm)-Verzeichnis die richtigen Berechtigungen haben, führe den folgenden Befehl aus:
stat /home/ec2-user/ ls -ld /home # Should show drwxr-xr-x (755) ls -ld /home/ec2-user # Should show drwx------ (700) ls -ld /home/ec2-user/.ssh # Should show drwx------ (700) ls -l /home/ec2-user/.ssh/authorized_keys # Should show -rw------- (600)Hinweis: Ersetze ec2-user durch den richtigen Benutzernamen für das AMI.
Überprüfe in der Ausgabe den Zugriff, um sicherzustellen, dass die Konfiguration die folgenden Berechtigungen verwendet:
Das Linux-Stammverzeichnis /home muss über die Berechtigungen 0755/drwxr-xr-x verfügen.
Das Stammverzeichnis des Benutzers /home/ec2-user/ muss über die Berechtigungen 0700/drwx------ verfügen.
Die .ssh-Verzeichnisberechtigung**/home/ec2-user/.ssh** muss über die Berechtigungen 0700/drwx------ verfügen.
Die authorized_keys-Dateiberechtigung /home/ec2-user/.ssh/authorized_keys muss über die Berechtigungen 0600/-rw------- verfügen.
Beispielausgabe:File: '/home/ec2-user/' Size: 4096 Blocks: 8 IO Block: 4096 directory Device: 10301h/66305d Inode: 18322 Links: 3 Access: (0700/drwx------) Uid: ( 500/ec2-user) Gid: ( 500/ec2-user) -
Führe die folgenden Befehle aus, um die Berechtigungen der Konfiguration zu aktualisieren:
sudo chown root:root /home$ sudo chmod 755 /home$ sudo chown ec2-user:ec2-user /home/ec2-user -R sudo chmod 700 /home/ec2-user /home/ec2-user/.ssh sudo chmod 600 /home/ec2-user/.ssh/authorized_keysHinweis: Ersetze ec2-user durch den richtigen Benutzernamen für das AMI.
-
Verwende SSH, um eine Verbindung zu deiner Instance herzustellen.
Das AWSSupport-TroubleshootSSH-Runbook ausführen
Führe AWSSupport-TroubleshootSSH aus, um Probleme, die Fehler verursachen, automatisch zu korrigieren. Das Runbook installiert das Amazon EC2Rescue-Tool auf der Instance und identifiziert und korrigiert dann Probleme, die bei SSH zu Fernverbindungsfehlern führen. Weitere Informationen findest du unter Ich erhalte Fehler, wenn ich versuche, mit SSH eine Verbindung zu meiner EC2-Instance herzustellen. Wie kann ich den AWSSupport-TroubleshootSSH-Automatisierungsablauf verwenden, um SSH-Verbindungsprobleme zu beheben?
Verwendung von Benutzerdaten, um die Berechtigungen auf der Instance zu berichtigen
Wichtig: Bevor du die Instance stoppst und startest, gehe wie folgt vor:
- Erstelle ein Backup deines Amazon Elastic Block Store (Amazon EBS)-Volumes.
Hinweis: Wenn die Instance vom Instance-Speicher unterstützt wird oder über Instance-Speicher-Volumes verfügt, die Daten enthalten, löscht Amazon EC2 die Daten, wenn du die Instance stoppst. Du kannst den SSH-Schlüssel nicht mithilfe von Benutzerdaten ändern, wenn das Stammgerät der Instance ein Instance-Speicher-Volume ist. - Entferne die Instance vorübergehend aus der Amazon EC2 Auto Scaling-Gruppe, wenn du die Lösungsschritte abschließt.
Hinweis: Wenn du eine Instance anhältst, die sich in einer EC2 Auto Scaling-Gruppe befindet, beendest du die Instance möglicherweise auf der Grundlage der Abskalierungs-Schutzeinstellungen. Instances, die du mit Amazon EMR, AWS CloudFormation oder AWS Elastic Beanstalk startest, sind möglicherweise Teil einer Auto-Scaling-Gruppe. - Stelle das Verhalten beim Herunterfahren der Instance auf Stopp ein, um sicherzustellen, dass die Instances nicht beendet werden, wenn du sie stoppst.
- Installiere und konfiguriere cloud-init. Weitere Informationen findest du unter Configure SSH and SSH keys (Konfigurieren von SSH und SSH-Schlüsseln) auf der cloud-init-Website.
Wichtig: Aktualisierungen der Benutzerdaten der Instance wirken sich auf alle Verteilungen aus, die cloud-init-Befehle unterstützen.
Hinweis: Wenn du eine Instance stoppst und startest, ändert sich die öffentliche IP-Adresse der Instance. Es empfiehlt sich, beim Weiterleiten von externem Datenverkehr an die Instance eine Elastic-IP-Adresse anstelle einer öffentlichen IP-Adresse zu verwenden. Wenn du Amazon Route 53 verwendest, musst du möglicherweise die Route 53-DNS-Datensätze aktualisieren, wenn sich die öffentliche IP-Adresse ändert.
Gehe wie folgt vor, um Benutzerdaten zur Behebung von Berechtigungsproblemen zu verwenden:
-
Öffne die Amazon-EC2-Konsole.
-
Wähle im Navigationsbereich Instances und dann deine Instance aus.
-
Wähle Instance-Status und dann Instance stoppen aus.
Hinweis: Wenn du Instance stoppen nicht wählen kannst, ist die Instance bereits gestoppt oder ihr Stammgerät ist ein Instance-Speicher-Volume. -
Wähle Aktionen und dann Instance-Einstellungen aus.
-
Wähle Benutzerdaten bearbeiten und gib dann den folgenden Befehl ein:
Content-Type: multipart/mixed; boundary="//"MIME-Version: 1.0 --// Content-Type: text/cloud-config; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="cloud-config.txt" #cloud-config cloud_final_modules: - [scripts-user, always] --//Content-Type: text/x-shellscript; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="userdata.txt" #!/bin/bash chown root:root /home chmod 755 /home chown ec2-user:ec2-user /home/ec2-user -R chmod 700 /home/ec2-user /home/ec2-user/.ssh chmod 600 /home/ec2-user/.ssh/authorized_keys --//Hinweis: Ersetze ec2-user durch den richtigen Benutzernamen für das AMI. Füge keine zusätzlichen Leerzeichen hinzu, wenn du den vorherigen Befehl eingibst.
-
Wähle Speichern aus.
-
Starte die Instance und verwende dann SSH, um eine Verbindung mit der Instance herzustellen.
Standardmäßig wird der Benutzerdatenbefehl für jede Instance einmal ausgeführt. Die vorherigen Schritte ändern das Standardverhalten, sodass der öffentliche Schlüssel bei jedem Reboot, Stopp oder Start der Instance hinzugefügt wird. Um das Standardverhalten wiederherzustellen, entferne die Befehle für benutzerdefinierte Benutzerdaten. Es hat sich bewährt, Benutzerdaten nach dem ersten Start der Instance ausführen zu lassen. Du kannst die API ModifyInstanceAttribute verwenden, um die Benutzerdaten einer Instance zu ändern. Verwende die AWS Identity and Access Management (IAM, Identitäts- und Zugriffsmanagement)-Richtlinien, um den Zugriff auf die API ModifyInstanceAttribute einzuschränken.
Ähnliche Informationen
Mithilfe von PuTTY eine Verbindung zur Linux-Instance herstellen
- Sprache
- Deutsch
Ähnliche Videos


Relevanter Inhalt
AWS OFFICIALAktualisiert vor 9 Monaten