Wie behebe ich Probleme beim Herstellen einer Verbindung zu meiner EC2-Linux-Instance über SFTP?

Lesedauer: 4 Minute
0

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.

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 8 Monaten