Wie behebe ich Probleme beim Herstellen einer Verbindung zu meiner EC2-Linux-Instance über SFTP?
Ich kann über Secure File Transfer Protocol (SFTP) keine Verbindung zu meiner Linux-Instance in Amazon Elastic Compute Cloud (Amazon EC2) herstellen. Oder ich erhalte die Fehlermeldung „remote readdir Zugriff verweigert“.
Lösung
Die Verbindung zu Ihrer EC2-Instance über SFTP kann aus mehreren Gründen fehlschlagen. Gehen Sie wie folgt vor, um Probleme mit Ihrer Verbindung zu beheben.
Sicherstellen, dass Ihre Instance die Voraussetzungen für eine SSH-Verbindung erfüllt
SFTP funktioniert auf Grundlage von SSH. Stellen Sie sicher, dass die Instance alle Voraussetzungen für eine SSH-Verbindung erfüllt. Eine Liste der Voraussetzungen finden Sie unter Herstellen einer Verbindung mit Ihrer Linux-Instance von Linux oder macOS mithilfe von SSH.
Anmelden bei der Instance mit eingeschalteter ausführlicher Meldung, um den Fehler zu identifizieren
Möglicherweise wird einer der folgenden häufigen Verbindungsfehler angezeigt:
- Verbindung wurde unterbrochen oder Verbindung verweigert
- Zugriff verweigert oder Authentifizierung fehlgeschlagen
- Der Server hat unseren Schlüssel abgelehnt
Weitere Informationen zu ausführlichen Nachrichten und zur Behebung von SSH-Fehlern finden Sie unter Wie kann ich Probleme bei der Verbindung zu meiner Amazon EC2 Linux Instance mithilfe von SSH beheben?
Wenn Sie die serielle EC2-Konsole aktiviert haben, können Sie damit Probleme mit unterstützten Nitro-basierten Instance-Typen beheben. Die serielle Konsole hilft Ihnen bei der Behebung von Problemen bei Startvorgängen, Netzwerkkonfigurationen und SSH-Konfigurationen. Die serielle Konsole stellt eine Verbindung zu Ihrer Instance her, ohne dass eine funktionierende Netzwerkverbindung erforderlich ist. Sie können über die Amazon-EC2-Konsole oder AWS Command Line Interface (AWS CLI) auf die serielle Konsole zugreifen.
Bevor Sie die serielle Konsole verwenden, gewähren Sie auf Kontoebene Zugriff darauf. Erstellen Sie anschließend AWS Identity and Access Management (IAM)-Richtlinien, die Ihren IAM-Benutzern Zugriff gewähren. Außerdem muss jede Instance, die die serielle Konsole verwendet, mindestens einen passwortbasierten Benutzer enthalten. Weitere Informationen finden Sie unter Zugriff auf die serielle EC2-Konsole konfigurieren.
**Hinweis:**Wenn beim Ausführen von Befehlen in AWS CLI Fehler auftreten, stellen Sie sicher, dass Sie die neueste Version von AWS CLI verwenden.
Überprüfen der Authentifizierungs- und Systemprotokolle auf Fehler
Authentifizierungsprotokoll in Amazon Linux, Amazon Linux2, RHEL und Fedora
$ sudo less /var/log/secure
Generische Systemprotokolle in Amazon Linux, Amazon Linux2, RHEL und Fedora
$ sudo less /var/log/messages
Authentifizierungsprotokoll in Debian und Ubuntu
$ sudo less /var/log/auth.log
Generische Systemprotokolle in Debian und Ubuntu
$ sudo less /var/log/syslog
Amazon Linux 2023
Überprüfen Sie die SSHD-Protokolle:
journalctl -u sshd
Überprüfen Sie die generischen Systemprotokolle:
journalctl -a
Sicherstellen, dass in der SSHD-Konfigurationsdatei das Subsystem für SFTP konfiguriert ist
Stellen Sie sicher, dass in der SSHD-Konfigurationsdatei das Subsystem für SFTP konfiguriert ist und dass die gemeinsame Objektdatei für „sftp-server“ im entsprechenden Verzeichnis vorhanden ist. Wenn die SFTP-Verbindung aufgrund eines fehlenden SFTP-Subsystems unterbrochen wird, zeigt das Protokoll möglicherweise eine die Fehlermeldung Subsystem-Anforderung auf Kanal 0 fehlgeschlagen an.
**RHEL- und Fedora-basierte Distributionen **
$ sudo grep Subsystem /etc/ssh/sshd_config Subsystem sftp /usr/libexec/openssh/sftp-server $ sudo ls -l /usr/libexec/openssh/sftp-server -rwxr-xr-x. 1 root root 100784 Jun 26 2019 /usr/libexec/openssh/sftp-server
**Debian- und Ubuntu-basierte Distributionen **
$ sudo grep Subsystem /etc/ssh/sshd_config Subsystem sftp /usr/lib/openssh/sftp-server $ sudo ls -l /usr/lib/openssh/sftp-server -rwxr-xr-x 1 root root 105608 Mar 4 2019 /usr/lib/openssh/sftp-server
Weitere Informationen finden Sie im Abschnitt Subsystem in sshd_config auf der Linux-Handbuchseite.
Beheben eines Fehlers vom Typ „Remote readdir Zugriff verweigert“
Der Fehler remote readdir Zugriff verweigert weist darauf hin, dass der Benutzer nicht über die nötigen Berechtigungen verfügt, um eine Verbindung zu SFTP herzustellen. Der Benutzer muss mindestens über Lese- und Ausführungsberechtigungen verfügen, um in ein Zielverzeichnis zu wechseln.
Stellen Sie sicher, dass der Benutzer berechtigt ist, auf das Zielverzeichnis zuzugreifen:
ls -ldZ /directory
Suchen Sie nach Zugriffssteuerungslisten (ACL), die den Benutzerzugriff einschränken:
getfacl /directory
Stellen Sie sicher, dass Sie SELinux aktiviert haben:
getenforce
Wenn SELinux aktiviert ist, überprüfen Sie das /var/log/audit/audit.log oder /var/log/audit.log auf Fehler vom Typ „Zugriff verweigert“ aufgrund des SELinux-Kontexts.
Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 9 Monaten
- AWS OFFICIALAktualisiert vor 3 Jahren
- AWS OFFICIALAktualisiert vor 3 Jahren
- AWS OFFICIALAktualisiert vor 2 Jahren