
🚀 SSL/TLS auf dem Datenkanal erforderlich – Fehler bei FTP-Verbindung: So beheben Sie ihn
Sie verbinden sich über Ihren Code-Editor per FTP mit einem Server, geben Host, Benutzernamen und Passwort ein und erhalten als Antwort eine rote Zeile: SSL/TLS required on the data channel. Kommt Ihnen das bekannt vor? Dieser Fehler tritt auf, wenn der Server eine verschlüsselte Verbindung verlangt, der Client jedoch versucht, eine Verbindung über unverschlüsseltes FTP herzustellen. Besonders häufig passiert das bei Hosting-Anbietern mit selbstsignierten Zertifikaten.
Früher wurde dieses Problem in Atom über das Remote-FTP-Plugin gelöst. Atom wurde im Dezember 2022 eingestellt, der Fehler ist aber nicht verschwunden. Er lebt weiter in VS Code, FileZilla, Pulsar und jedem FTP-Client, der sich mit einem Server mit selbstsigniertem SSL-Zertifikat verbindet.
In diesem Beitrag zeige ich Ihnen drei funktionierende Wege, um SSL/TLS required on the data channel zu umgehen: für Atom/Pulsar über .ftpconfig, für VS Code über die SFTP-Erweiterung und für GUI-Clients wie FileZilla. Dazu eine wichtige Warnung: wann rejectUnauthorized: false ein akzeptabler Workaround ist und wann es ein Sicherheitsleck darstellt.
💡 Kurzüberblick:
- Woher der Fehler kommt: Der Server verlangt TLS, der Client sendet unverschlüsseltes FTP, die Verbindung bricht auf der Ebene des Datenkanals ab.
.ftpconfigmitrejectUnauthorized: falseundsecure: trueist die Lösung für Atom und dessen Fork Pulsar, die mit dem Remote-FTP-Plugin funktioniert.- In VS Code löst die SFTP-Erweiterung von liximomo mit dem Parameter
secure: truedasselbe Problem auf der Ebene dersftp.json-Konfiguration. - In FileZilla und anderen GUI-Clients wechseln Sie einfach das Protokoll von FTP auf FTPS (Explicit TLS) und akzeptieren das Zertifikat manuell.
- Sicherheit:
rejectUnauthorized: falsedeaktiviert die Zertifikatsprüfung und ist nur für Dev-Server und Testumgebungen akzeptabel, niemals in der Produktion.
Woher der Fehler „SSL/TLS required on the data channel" kommt
Das FTP-Protokoll arbeitet mit zwei Kanälen: einem Steuerkanal (Befehle) und einem Datenkanal (eigentliche Dateiübertragung). Wenn der Server für FTPS (FTP over TLS) konfiguriert ist, verschlüsselt er beide. Ein Client, der eine Verbindung über reguläres FTP versucht, durchläuft die Authentifizierung auf dem Steuerkanal erfolgreich, doch beim Versuch, den Datenkanal zu öffnen, antwortet der Server: 550 SSL/TLS required on the data channel.
Der technische Grund liegt in der TLS-Implementierung auf Node.js-Seite (worauf sowohl Remote FTP für Atom als auch die SFTP-Erweiterung für VS Code aufbauen). Node.js validiert SSL-Zertifikate standardmäßig. Ein selbstsigniertes Zertifikat besteht diese Validierung nicht, und die Verbindung bricht ab. Die Lösung: Entweder dem Client explizit mitteilen, das Zertifikat nicht zu prüfen (rejectUnauthorized: false), oder auf explizites FTPS mit manueller Zertifikatsannahme umstellen.
Lösung 1: Korrekte .ftpconfig für Atom und Pulsar
Atom wurde im Dezember 2022 offiziell eingestellt, aber sein Fork Pulsar (ehemals Atom) ist vollständig kompatibel mit Atom-Paketen, einschließlich Remote FTP. Die Lösung besteht darin, die korrekten secureOptions in der .ftpconfig anzugeben.
Erstellen (oder bearbeiten) Sie die Datei .ftpconfig im Projektstammverzeichnis:
1 { 2 "protocol": "ftp", 3 "host": "your.server.com", 4 "port": 21, 5 "user": "login", 6 "pass": "password", 7 "promptForPass": false, 8 "remote": "/", 9 "secure": true, 10 "secureOptions": { 11 "rejectUnauthorized": false 12 }, 13 "connTimeout": 10000, 14 "keepalive": 10000 15 }
Schlüsselparameter:
secure: trueaktiviert TLS für beide Kanäle, Steuer- und Datenkanal;rejectUnauthorized: falsedeaktiviert die Zertifikatsprüfung (Node.js verlangt kein gültiges Zertifikat mehr vom Server);port: 21ist der Standardport für FTP; für FTPS über implizites TLS verwenden Sie Port 990 undprotocol: "ftps".
Nach dem Speichern der .ftpconfig stellen Sie die Verbindung zum Server erneut her, und der Fehler SSL/TLS required on the data channel verschwindet.
Lösung 2: Konfiguration der SFTP-Erweiterung in VS Code
Die beliebteste Erweiterung für FTP/SFTP in VS Code ist SFTP von liximomo (über 1,3 Mio. Installationen). Der Fehler 550 SSL/TLS required on the control channel wird in Issue #872 diskutiert.
Nach der Installation der Erweiterung führen Sie Ctrl+Shift+P → SFTP: Config aus, und die Datei sftp.json öffnet sich. Konfigurieren Sie sie wie folgt:
1 { 2 "name": "My server", 3 "host": "your.server.com", 4 "protocol": "ftp", 5 "port": 21, 6 "secure": true, 7 "username": "login", 8 "password": "password", 9 "remotePath": "/", 10 "uploadOnSave": true 11 }
Der Parameter secure: true ist ein direktes Äquivalent zu rejectUnauthorized: false aus der .ftpconfig. Er weist die Erweiterung an, FTPS zu verwenden und die Verbindung bei einem selbstsignierten Zertifikat nicht abzubrechen.
Wenn der Server implizites FTPS (Port 990) verwendet, ändern Sie protocol auf ftps und port auf 990. Speichern Sie sftp.json, führen Sie SFTP: Download Project aus, und die Erweiterung verbindet sich und lädt den Inhalt von remotePath herunter.
Lösung 3: FileZilla und andere GUI-Clients
In GUI-Clients wird das Problem noch einfacher auf der Oberflächenebene gelöst. In FileZilla:
- Öffnen Sie die Serververwaltung (
Ctrl+S). - Wählen Sie die Verbindung aus und wechseln Sie im Feld Protokoll von
FTPaufFTP over TLS (explicit). - Bei der ersten Verbindung zeigt FileZilla einen Dialog mit dem Zertifikatsfingerabdruck an; klicken Sie auf Diesem Zertifikat vertrauen und setzen Sie den Haken bei „Immer vertrauen".
Dasselbe Prinzip funktioniert in WinSCP, Cyberduck und jedem modernen FTP-Client: Geben Sie explizit das FTPS-Protokoll an und akzeptieren Sie das Zertifikat manuell. Keine Konfigurationsdateien, nur die Oberfläche.
Wann Sie die Zertifikatsprüfung NICHT deaktivieren sollten
rejectUnauthorized: false ist eine bewusste Schwächung der Sicherheit. Sie sagen dem Client: „Akzeptiere JEDES Zertifikat, auch ein gefälschtes." Das ist in drei Fällen akzeptabel:
- Ein lokaler Dev-Server oder eine Staging-Umgebung, die nicht aus dem Internet erreichbar ist.
- Ihr eigener VPS, bei dem Sie genau wissen, woher das Zertifikat stammt.
- Eine Testumgebung hinter einem Firmen-VPN.
Auf einem Produktionsserver mit selbstsigniertem Zertifikat ist es besser, 15 Minuten in die Einrichtung von Let's Encrypt zu investieren, einem kostenlosen SSL-Zertifikat, das alle Clients ohne rejectUnauthorized: false erkennen.
Sehen Sie sich dieses kurze Tutorial zur SFTP-Verbindung in VS Code an, das alle Schritte von der Installation der Erweiterung bis zur ersten Serververbindung abdeckt:
⁉️🤔 Häufig gestellte Fragen
Der Fehler bleibt nach secure: true bestehen; was sollte ich noch prüfen?
Überprüfen Sie zuerst den Port. Explizites FTPS arbeitet auf Port 21, implizites auf 990. Wenn der Serveradministrator implizites FTPS verlangt, Sie aber
protocol: "ftp"mitport: 21angegeben haben, kommt die Verbindung nicht zustande, egal wie sehr Sie diesecureOptionsändern. Prüfen Sie Ihr Hosting-Panel oder fragen Sie den Administrator, welchen FTPS-Modus der Server verwendet.
Kann ich SFTP anstelle von FTPS verwenden?
Ja, und das ist die bevorzugte Option. SFTP (SSH File Transfer Protocol) arbeitet über SSH, nicht über FTP, daher existieren SSL-Zertifikatsprobleme dafür schlichtweg nicht. Wenn der Server SSH-Zugang bietet, verwenden Sie SFTP anstelle von FTPS. In derselben
.ftpconfigändern Sie einfachprotocolaufsftpundportauf22.
Atom wurde eingestellt; funktioniert Remote FTP noch?
Das Remote-FTP-Paket ist im Atom-Repository verfügbar, aber der Editor selbst wurde seit Dezember 2022 nicht mehr aktualisiert und enthält bekannte Sicherheitslücken. GitHub hat die Codesignaturzertifikate für Atom im Januar 2023 sogar widerrufen. Wenn Atom auf Ihrem Rechner noch startet, migrieren Sie zum Pulsar-Fork, der dieselben Pakete und Konfigurationen ohne Änderungen übernimmt.
Was ist mit VS Code Remote SSH?
Remote SSH ist eine ausgezeichnete Alternative zu FTP-Verbindungen, wenn der Server unter Linux läuft und SSH-Zugang bietet. Sie arbeiten direkt mit den Dateien, ohne Synchronisation und Zertifikatsprobleme. Für Shared Hosting jedoch, wo SSH gesperrt ist und der Zugang nur per FTP erfolgt, bleiben die Lösungen in diesem Beitrag relevant.
Der Fehler SSL/TLS required on the control channel (nicht Datenkanal): ist das dasselbe?
Ja, der einzige Unterschied ist, auf welchem Kanal die Verbindung abgebrochen ist. Der Steuerkanal verarbeitet Befehle (Authentifizierung, Navigation), der Datenkanal die Dateiübertragung. Der Server kann TLS auf einem der beiden Kanäle verlangen. Die Lösung ist identisch:
secure: true+rejectUnauthorized: falsein der Konfiguration.
Fehler besteht weiter: Abschließende Checkliste
Gehen Sie die Punkte durch; einer davon wird das Problem lösen:
- Protokoll: Ist
secure: truein der Konfiguration gesetzt (.ftpconfigodersftp.json)? - Port: Explizites FTPS = 21, implizites = 990, SFTP = 22. Gleichen Sie mit den Servereinstellungen ab.
- rejectUnauthorized: Ein selbstsigniertes Zertifikat besteht die Node.js-Validierung ohne diese Option NICHT.
- GUI-Client: Haben Sie in der Serververwaltung auf
FTP over TLS (explicit)umgestellt und das Zertifikat manuell akzeptiert? - SFTP statt FTPS: Wenn Sie SSH-Zugang haben, vergessen Sie FTP und wechseln Sie zu SFTP.
Wenn Sie alles versucht haben und der Fehler weiterhin besteht, ist der Server höchstwahrscheinlich für implizites FTPS (Port 990) konfiguriert, während der Client sich mit Port 21 verbindet. Erfragen Sie bei Ihrem Hosting-Anbieter den erforderlichen Modus und Port.
Dieser Fehler ist kein Editor-Bug, sondern eine Eigenschaft des TLS-Handshakes mit einem selbstsignierten Zertifikat. Nach korrekter Konfiguration verschwindet er auf jedem Client: ob in Atom von 2018, Pulsar von 2026 oder VS Code.



