
🚀 SSL/TLS krävs på datakanalen fel vid FTP-anslutning: hur man fixar
Du ansluter till en server via FTP genom din kodredigerare, anger värd, användarnamn och lösenord och får en röd linje som svar: SSL/TLS required on the data channel. Låter det bekant? Felet uppstår när servern kräver en krypterad anslutning, men klienten försöker ansluta via okrypterad FTP. Detta händer särskilt ofta hos webbhotell med självsignerade certifikat.
Tidigare löstes problemet i Atom via tillägget Remote FTP. Atom dog i december 2022, men felet har inte försvunnit. Det lever vidare i VS Code, FileZilla, Pulsar och alla FTP-klienter som ansluter till en server med ett självsignerat SSL-certifikat.
I det här inlägget går vi igenom tre fungerande sätt att kringgå SSL/TLS required on the data channel: för Atom/Pulsar via .ftpconfig, för VS Code via SFTP-tillägget och för GUI-klienter som FileZilla. Plus en viktig varning: när rejectUnauthorized: false är en acceptabel lösning, och när det är ett säkerhetshål.
💡 Snabb översikt:
- Var felet kommer ifrån: servern kräver TLS, klienten skickar okrypterad FTP, anslutningen bryts vid datakanalsteget.
.ftpconfigmedrejectUnauthorized: falseochsecure: trueär lösningen för Atom och dess fork Pulsar som fungerar med Remote FTP-tillägget.- I VS Code löser SFTP-tillägget av liximomo med parametern
secure: truesamma problem på konfigurationsnivånsftp.json. - I FileZilla och andra GUI-klienter byter du helt enkelt protokoll från FTP till FTPS (Explicit TLS) och accepterar certifikatet manuellt.
- Säkerhet:
rejectUnauthorized: falseinaktiverar certifikatverifiering och är endast acceptabelt för utvecklingsservrar och testmiljöer, aldrig i produktion.
Var felet SSL/TLS required on the data channel kommer ifrån
FTP-protokollet fungerar via två kanaler: kontrollkanal (kommandon) och datakanal (själva filöverföringen). När servern är konfigurerad för FTPS (FTP över TLS) krypterar den båda. En klient som försöker ansluta via vanlig FTP klarar autentiseringen på kontrollkanalen, men när den försöker öppna datakanalen svarar servern: 550 SSL/TLS required on the data channel.
Den tekniska orsaken ligger i TLS-implementeringen på Node.js-sidan (som både Remote FTP för Atom och VS Code SFTP-tillägget är byggda på). Node.js validerar SSL-certifikat som standard. Ett självsignerat certifikat klarar inte denna validering, och anslutningen bryts. Lösningen: antingen be klienten uttryckligen att inte verifiera certifikatet (rejectUnauthorized: false), eller byt till explicit FTPS med manuell certifikatacceptans.
Lösning 1: korrekt.ftpconfig för Atom och Pulsar
Atom lades officiellt ned i december 2022, men dess fork Pulsar (tidigare Atom) är fullt kompatibel med Atom-paket, inklusive Remote FTP. Lösningen är att ange rätt secureOptions i .ftpconfig.
Skapa (eller redigera) filen .ftpconfig i projektroten:
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 }
Viktiga parametrar:
secure: trueaktiverar TLS för både kontroll- och datakanaler;rejectUnauthorized: falseinaktiverar certifikatverifiering (Node.js slutar kräva ett giltigt certifikat från servern);port: 21är standardporten för FTP; för FTPS via implicit TLS, använd port 990 ochprotocol: "ftps".
Efter att du sparat .ftpconfig, anslut till servern igen, så försvinner felet SSL/TLS required on the data channel.
Lösning 2: konfigurera SFTP-tillägget i VS Code
Det populäraste tillägget för FTP/SFTP i VS Code är SFTP by liximomo (1,3+ miljoner installationer). Felet 550 SSL/TLS required on the control channel diskuteras i issue #872.
Efter installation av tillägget, kör Ctrl+Shift+P → SFTP: Config, så öppnas filen sftp.json. Konfigurera den enligt följande:
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 }
Parametern secure: true är en direkt motsvarighet till rejectUnauthorized: false från .ftpconfig. Den talar om för tillägget att använda FTPS och inte bryta anslutningen när det stöter på ett självsignerat certifikat.
Om servern använder implicit FTPS (port 990), ändra protocol till ftps och port till 990. Spara sftp.json, kör SFTP: Download Project, så ansluter tillägget och laddar ner innehållet i remotePath.
Lösning 3: FileZilla och andra GUI-klienter
I GUI-klienter löses problemet ännu enklare på gränssnittsnivå. I FileZilla:
- Öppna Platshanteraren (
Ctrl+S). - Välj anslutningen, och i fältet Protokoll byt från
FTPtillFTP over TLS (explicit). - Vid första anslutningen visar FileZilla en dialog med certifikatets fingeravtryck; klicka på Lita på detta certifikat och kryssa i "Lita alltid på."
Samma princip fungerar i WinSCP, Cyberduck och alla moderna FTP-klienter: ange uttryckligen FTPS-protokollet och acceptera certifikatet manuellt. Inga konfigurationsfiler, bara gränssnittet.
När du INTE bör inaktivera certifikatverifiering
rejectUnauthorized: false är en medveten försvagning av säkerheten. Du säger till klienten: "acceptera ALLA certifikat, även förfalskade." Detta är acceptabelt i tre fall:
- En lokal utvecklingsserver eller staging-miljö som inte är tillgänglig från internet.
- Din egen VPS, där du vet exakt var certifikatet kommer ifrån.
- En testmiljö bakom ett företags-VPN.
På en produktionsserver med ett självsignerat certifikat är det bättre att lägga 15 minuter på att sätta upp Let's Encrypt, ett gratis SSL-certifikat som alla klienter känner igen utan rejectUnauthorized: false.
Se den här korta handledningen om SFTP-anslutning i VS Code, som täcker alla steg från installation av tillägget till första serveranslutningen:
⁉️🤔 Vanliga frågor
Felet kvarstår efter secure: true; vad mer bör jag kontrollera?
Kontrollera först porten. Explicit FTPS fungerar på port 21, implicit på 990. Om serveradministratören kräver implicit FTPS men du angav
protocol: "ftp"medport: 21, kommer anslutningen inte att upprättas oavsett hur mycket du ändrarsecureOptions. Kontrollera din webbhotellspanel eller fråga administratören vilket FTPS-läge servern använder.
Kan jag använda SFTP istället för FTPS?
Ja, och detta är det föredragna alternativet. SFTP (SSH File Transfer Protocol) fungerar över SSH, inte FTP, så SSL-certifikatproblem existerar helt enkelt inte för det. Om servern erbjuder SSH-åtkomst, använd SFTP istället för FTPS. I samma
.ftpconfig, ändra baraprotocoltillsftpochporttill22.
Atom har lagts ned; fungerar Remote FTP fortfarande?
Remote FTP-paketet finns tillgängligt i Atoms arkiv, men själva redigeraren har inte uppdaterats sedan december 2022 och innehåller kända sårbarheter. GitHub återkallade till och med kodsigneringscertifikaten för Atom i januari 2023. Om Atom fortfarande startar på din maskin, migrera till Pulsar-forken, som hämtar samma paket och konfigurationer utan ändringar.
Vad sägs om VS Code Remote SSH?
Remote SSH är ett utmärkt alternativ till FTP-anslutningar om servern kör Linux och har SSH-åtkomst. Du arbetar med filer direkt, utan synkronisering och certifikatstrul. Men för delade webbhotell där SSH är stängt och åtkomst endast sker via FTP, förblir lösningarna i detta inlägg relevanta.
Felet SSL/TLS required on the control channel (inte datakanal): är detta samma sak?
Ja, den enda skillnaden är vilken kanal anslutningen bröts på. Kontrollkanalen hanterar kommandon (autentisering, navigering), datakanalen hanterar filöverföring. Servern kan kräva TLS på endera av dem. Lösningen är identisk:
secure: true+rejectUnauthorized: falsei konfigurationen.
Felet kvarstår: slutlig checklista
Gå igenom punkterna; en av dem kommer att lösa problemet:
- Protokoll: är
secure: trueinställt i konfigurationen (.ftpconfigellersftp.json)? - Port: explicit FTPS = 21, implicit = 990, SFTP = 22. Verifiera mot serverinställningarna.
- rejectUnauthorized: ett självsignerat certifikat kommer INTE att klara Node.js validering utan detta alternativ.
- GUI-klient: bytte du Platshanteraren till
FTP over TLS (explicit)och accepterade certifikatet manuellt? - SFTP istället för FTPS: om du har SSH-åtkomst, glöm FTP och byt till SFTP.
Om du har provat allt och felet kvarstår, är servern troligtvis konfigurerad för implicit FTPS (port 990), medan klienten ansluter till port 21. Kontrollera med din webbhotellsleverantör vilket läge och vilken port som krävs.
Detta fel är inte en bugg i redigeraren utan en egenskap hos TLS-handskakningen med ett självsignerat certifikat. Efter korrekt konfigurationsinställning försvinner det i alla klienter: vare sig det är i Atom från 2018, Pulsar från 2026 eller VS Code.



