
🚀 SSL/TLS required on the data channel -virhe FTP-yhteyden aikana: kuinka korjata
Yhdistät palvelimeen FTP:llä koodieditorisi kautta, syötät palvelimen osoitteen, käyttäjätunnuksen ja salasanan, ja saat vastaukseksi punaisen rivin: SSL/TLS required on the data channel. Kuulostaako tutulta? Tämä virhe ilmenee, kun palvelin vaatii salattua yhteyttä, mutta asiakasohjelma yrittää yhdistää tavallisella FTP:llä. Tätä tapahtuu erityisen usein hosting-palveluntarjoajilla, joilla on itse allekirjoitetut varmenteet.
Aiemmin tämä ongelma ratkaistiin Atomissa Remote FTP -lisäosan avulla. Atomin tuki päättyi joulukuussa 2022, mutta virhe ei ole kadonnut minnekään. Se elää yhä VS Codessa, FileZillassa, Pulsarissa ja kaikissa FTP-asiakasohjelmissa, jotka yhdistävät palvelimeen, jolla on itse allekirjoitettu SSL-varmenne.
Tässä kirjoituksessa kolme toimivaa tapaa kiertää SSL/TLS required on the data channel -virhe: Atomille/Pulsarille .ftpconfig-tiedoston kautta, VS Codelle SFTP-lisäosan avulla ja graafisille asiakkaille kuten FileZillalle. Lisäksi tärkeä varoitus: milloin rejectUnauthorized: false on hyväksyttävä kiertotapa ja milloin se on tietoturva-aukko.
💡 Nopea yleiskatsaus:
- Mistä virhe johtuu: palvelin vaatii TLS:ää, asiakasohjelma lähettää tavallista FTP:tä, yhteys katkeaa datakanavavaiheessa.
.ftpconfigasetuksillarejectUnauthorized: falsejasecure: trueon ratkaisu Atomille ja sen Pulsar-haarukalle, joka toimii Remote FTP -lisäosan kanssa.- VS Codessa liximomon SFTP-lisäosa
secure: true-parametrilla ratkaisee saman ongelmansftp.json-asetustasolla. - FileZillassa ja muissa graafisissa asiakasohjelmissa vaihda protokolla FTP:stä FTPS:ään (Explicit TLS) ja hyväksy varmenne manuaalisesti.
- Tietoturva:
rejectUnauthorized: falsepoistaa varmenteen vahvistuksen käytöstä ja on hyväksyttävää vain kehityspalvelimilla ja testiympäristöissä, ei koskaan tuotannossa.
Mistä SSL/TLS required on the data channel -virhe johtuu
FTP-protokolla toimii kahden kanavan kautta: ohjauskanava (komennot) ja datakanava (varsinainen tiedostonsiirto). Kun palvelin on määritetty FTPS:lle (FTP over TLS), se salaa molemmat. Asiakasohjelma, joka yrittää yhdistää tavallisella FTP:llä, läpäisee todennuksen onnistuneesti ohjauskanavalla, mutta yrittäessään avata datakanavaa palvelin vastaa: 550 SSL/TLS required on the data channel.
Tekninen syy on TLS-toteutuksessa Node.js-puolella (jonka varaan sekä Atomin Remote FTP että VS Coden SFTP-lisäosa on rakennettu). Node.js vahvistaa SSL-varmenteet oletuksena. Itse allekirjoitettu varmenne ei läpäise tätä vahvistusta, ja yhteys katkeaa. Ratkaisu: joko kerro asiakasohjelmalle suoraan, ettei se vahvista varmennetta (rejectUnauthorized: false), tai vaihda eksplisiittiseen FTPS:ään ja hyväksy varmenne manuaalisesti.
Ratkaisu 1: oikea.ftpconfig Atomille ja Pulsarille
Atomin virallinen tuki päättyi joulukuussa 2022, mutta sen haarukka Pulsar (entinen Atom) on täysin yhteensopiva Atom-pakettien, mukaan lukien Remote FTP:n, kanssa. Ratkaisu on määrittää oikeat secureOptions-asetukset .ftpconfig-tiedostossa.
Luo (tai muokkaa) .ftpconfig-tiedosto projektin juuressa:
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 }
Keskeiset parametrit:
secure: trueottaa TLS:n käyttöön sekä ohjaus- että datakanavalle;rejectUnauthorized: falsepoistaa varmenteen vahvistuksen käytöstä (Node.js lakkaa vaatimasta palvelimelta kelvollista varmennetta);port: 21on FTP:n vakioportti; FTPS:lle implisiittisen TLS:n kautta käytä porttia 990 japrotocol: "ftps".
Tallenna .ftpconfig ja yhdistä palvelimeen uudelleen, niin SSL/TLS required on the data channel -virhe katoaa.
Ratkaisu 2: SFTP-lisäosan määrittäminen VS Codessa
Suosituin FTP/SFTP-lisäosa VS Codessa on SFTP by liximomo (yli 1,3 miljoonaa asennusta). 550 SSL/TLS required on the control channel -virhettä on käsitelty issuenumerossa #872.
Kun olet asentanut lisäosan, suorita Ctrl+Shift+P → SFTP: Config, jolloin sftp.json-tiedosto avautuu. Määritä se seuraavasti:
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 }
secure: true -parametri on suora vastine .ftpconfig-tiedoston rejectUnauthorized: false -asetukselle. Se kertoo lisäosalle, että sen tulee käyttää FTPS:ää eikä katkaista yhteyttä kohdatessaan itse allekirjoitetun varmenteen.
Jos palvelin käyttää implisiittistä FTPS:ää (portti 990), vaihda protocol arvoksi ftps ja port arvoksi 990. Tallenna sftp.json, suorita SFTP: Download Project, niin lisäosa yhdistää ja lataa remotePath-polun sisällön.
Ratkaisu 3: FileZilla ja muut graafiset asiakasohjelmat
Graafisissa asiakasohjelmissa ongelma ratkeaa vielä yksinkertaisemmin käyttöliittymätasolla. FileZillassa:
- Avaa Site Manager (
Ctrl+S). - Valitse yhteys ja vaihda Protocol-kentässä
FTP:stäFTP over TLS (explicit). - Ensimmäisellä yhdistyskerralla FileZilla näyttää valintaikkunan, jossa on varmenteen sormenjälki; napsauta Trust this certificate ja valitse "Always trust."
Sama periaate toimii WinSCP:ssä, Cyberduckissa ja kaikissa nykyaikaisissa FTP-asiakasohjelmissa: määritä FTPS-protokolla suoraan ja hyväksy varmenne manuaalisesti. Ei asetustiedostoja, vain käyttöliittymä.
Milloin varmenteen vahvistusta EI pidä poistaa käytöstä
rejectUnauthorized: false on tietoinen tietoturvan heikennys. Kerrot asiakasohjelmalle: "hyväksy MIKÄ TAHANSA varmenne, jopa väärennetty." Tämä on hyväksyttävää kolmessa tapauksessa:
- Paikallinen kehityspalvelin tai staging-ympäristö, johon ei ole pääsyä internetistä.
- Oma VPS, jossa tiedät tarkalleen, mistä varmenne on peräisin.
- Testiympäristö yrityksen VPN-verkon takana.
Tuotantopalvelimella, jolla on itse allekirjoitettu varmenne, on parempi käyttää 15 minuuttia Let's Encryptin asentamiseen. Se on ilmainen SSL-varmenne, jonka kaikki asiakasohjelmat tunnistavat ilman rejectUnauthorized: false -asetusta.
Katso tämä lyhyt opasvideo SFTP-yhteydestä VS Codessa, joka kattaa kaikki vaiheet lisäosan asentamisesta ensimmäiseen palvelinyhteyteen:
⁉️🤔 Usein kysytyt kysymykset
Virhe säilyy secure: true-asetuksen jälkeenkin; mitä muuta minun pitäisi tarkistaa?
Varmista ensin portti. Eksplisiittinen FTPS toimii portissa 21, implisiittinen portissa 990. Jos palvelimen ylläpitäjä vaatii implisiittistä FTPS:ää, mutta määritit
protocol: "ftp"japort: 21, yhteys ei muodostu, vaikka kuinka muuttaisitsecureOptions-asetuksia. Tarkista hosting-paneelistasi tai kysy ylläpitäjältä, mitä FTPS-tilaa palvelin käyttää.
Voinko käyttää SFTP:tä FTPS:n sijaan?
Kyllä, ja tämä on suositeltava vaihtoehto. SFTP (SSH File Transfer Protocol) toimii SSH:n, ei FTP:n yli, joten SSL-varmenneongelmia ei yksinkertaisesti ole. Jos palvelin tarjoaa SSH-yhteyden, käytä SFTP:tä FTPS:n sijaan. Samassa
.ftpconfig-tiedostossa vaihda vainprotocolarvoksisftpjaportarvoksi22.
Atomin tuki on päättynyt; toimiiko Remote FTP vielä?
Remote FTP -paketti on saatavilla Atomin pakettivarastossa, mutta itse editoria ei ole päivitetty joulukuun 2022 jälkeen ja se sisältää tunnettuja haavoittuvuuksia. GitHub jopa mitätöi Atomin koodin allekirjoitusvarmenteet tammikuussa 2023. Jos Atom vielä käynnistyy koneellasi, siirry Pulsar-haarukkaan, joka käyttää samoja paketteja ja asetuksia ilman muutoksia.
Entä VS Code Remote SSH?
Remote SSH on erinomainen vaihtoehto FTP-yhteyksille, jos palvelimella on Linux ja SSH-yhteys. Työskentelet tiedostojen kanssa suoraan, ilman synkronointia ja varmenneongelmia. Mutta jaetuille hosting-palveluille, joissa SSH on suljettu ja pääsy on vain FTP:n kautta, tämän kirjoituksen ratkaisut pysyvät ajankohtaisina.
Virhe SSL/TLS required on the control channel (ei datakanava): onko tämä sama asia?
Kyllä, ainoa ero on se, millä kanavalla yhteys katkesi. Ohjauskanava käsittelee komentoja (todennus, navigointi), datakanava tiedostonsiirtoa. Palvelin voi vaatia TLS:ää kummalla tahansa niistä. Ratkaisu on identtinen:
secure: true+rejectUnauthorized: falseasetustiedostossa.
Virhe jatkuu: lopullinen tarkistuslista
Käy kohdat läpi; yksi niistä ratkaisee ongelman:
- Protokolla: onko
secure: trueasetettu asetustiedostossa (.ftpconfigtaisftp.json)? - Portti: eksplisiittinen FTPS = 21, implisiittinen = 990, SFTP = 22. Varmista palvelimen asetuksista.
- rejectUnauthorized: itse allekirjoitettu varmenne EI läpäise Node.js-vahvistusta ilman tätä asetusta.
- Graafinen asiakasohjelma: vaihdoitko Site Managerissa
FTP over TLS (explicit)-tilaan ja hyväksyitkö varmenteen manuaalisesti? - SFTP FTPS:n sijaan: jos sinulla on SSH-yhteys, unohda FTP ja vaihda SFTP:hen.
Jos olet kokeillut kaikkea ja virhe jatkuu, palvelin on todennäköisesti määritetty implisiittiselle FTPS:lle (portti 990), kun taas asiakasohjelma yhdistää porttiin 21. Tarkista hosting-palveluntarjoajaltasi vaadittu tila ja portti.
Tämä virhe ei ole editorin bugi vaan TLS-kättelyn ominaisuus itse allekirjoitetun varmenteen kanssa. Oikean asetustiedoston määrityksen jälkeen se katoaa millä tahansa asiakasohjelmalla: oli kyseessä sitten Atom vuodelta 2018, Pulsar vuodelta 2026 tai VS Code.



