SFTP e SCP: trasferimento sicuro dei file
Confronti SFTP e SCP con l’FTP non sicuro e comprenda le protezioni crittografiche che forniscono.
SFTP e SCP: trasferimento sicuro dei file è una lezione Cryptology Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Cryptology Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Cryptology Academy include 4 lezioni in totale.
SFTP è un sottosistema SSH, non FTP
Nonostante il nome, SFTP (SSH File Transfer Protocol) non ha nulla a che fare con FTP. È un protocollo binario progettato per essere eseguito come sottosistema SSH-2, ovvero opera su una connessione SSH autenticata e cifrata già esistente. Il client SSH invoca il sottosistema SFTP sul server con il comando ssh user@host -s sftp. Tutte le operazioni SFTP ereditano le garanzie di sicurezza del trasporto SSH sottostante.
Funzionalità di SFTP
SFTP offre un ricco insieme di operazioni sui file attraverso il canale cifrato: elencare il contenuto delle directory, caricare e scaricare file, eliminare e rinominare file, creare e rimuovere directory, leggere e impostare autorizzazioni e timestamp dei file e riprendere trasferimenti interrotti. Queste funzionalità fanno di SFTP un'interfaccia completa per il file system remoto, non un semplice strumento di trasferimento file.
SCP: copia di file più semplice tramite SSH
SCP (Secure Copy Protocol) è un protocollo più vecchio e semplice per trasferire file tramite SSH. Il comando scp file.txt user@host:/path copia un file in modo sicuro. SCP è più semplice da usare di SFTP per trasferimenti occasionali, ma supporta solo un sottoinsieme delle operazioni: copia da locale a remoto, da remoto a locale o da remoto a remoto. Non dispone di una modalità interattiva e offre un supporto limitato per riprendere trasferimenti interrotti.
Vulnerabilità del protocollo SCP
Il protocollo SCP originale presentava una vulnerabilità significativa: un server malevolo poteva inviare file arbitrari al client, indipendentemente da ciò che il client aveva richiesto. Un attaccante che controllava il server poteva sovrascrivere file al di fuori della directory di destinazione prevista. OpenSSH ha deprecato il protocollo SCP legacy a favore di scp basato su SFTP in OpenSSH 9.0 (2022). I comandi scp moderni usano SFTP sottostante, eliminando questa classe di attacchi e preservando al contempo la sintassi familiare dei comandi.
FTP, FTPS e SFTP a confronto
Tre opzioni per il trasferimento sicuro dei file vengono comunemente confuse. FTP (porta 21) non è cifrato e non dovrebbe essere usato. FTPS (FTP su SSL) aggiunge TLS a FTP sulla porta 990 (implicita) o sulla porta 21 (esplicita con AUTH TLS), richiedendo l'infrastruttura FTP oltre alla gestione dei certificati. SFTP è un protocollo completamente distinto che opera su SSH (porta 22) e riutilizza l'autenticazione SSH esistente e la gestione delle chiavi. In genere SFTP è più semplice da configurare e mantenere rispetto a FTPS.
rsync su SSH per una sincronizzazione efficiente
rsync è uno strumento di sincronizzazione dei file che trasferisce solo le parti modificate dei file, risultando molto più efficiente di SCP per i backup incrementali. L'esecuzione di rsync con l'opzione -e ssh instrada tutti i dati attraverso un tunnel SSH. Il comando rsync -avz -e ssh user@host:/remote/ /local/ sincronizza una directory remota con una locale, trasferendo solo le differenze. rsync su SSH è l'approccio standard per i backup dei server e i flussi di lavoro di deployment.
Gestione dei trasferimenti di file di grandi dimensioni
SFTP supporta i trasferimenti riprendibili: se una connessione cade durante un caricamento di grandi dimensioni, il trasferimento può riprendere dall'ultimo byte confermato invece di ricominciare da zero. Il client sftp di OpenSSH supporta il comando reput per riprendere i caricamenti e reget per riprendere i download. Per trasferimenti molto grandi (file di più gigabyte), strumenti come lftp offrono una gestione più robusta dei trasferimenti, con nuovi tentativi automatici e limitazione della larghezza di banda.
Jail chroot SFTP per l'accesso limitato
Il server OpenSSH può limitare gli utenti SFTP a una struttura di directory specifica usando un jail chroot. L'aggiunta delle direttive Match User, ChrootDirectory e ForceCommand internal-sftp alla configurazione SSH crea un ambiente SFTP isolato. L'utente può caricare e scaricare file all'interno della directory assegnata, ma non può accedere al resto del file system né eseguire comandi della shell. Questa configurazione è ampiamente utilizzata per la gestione dei file nell'hosting web e per i portali di caricamento dei client.
Configurazione di un server SFTP
Per abilitare SFTP su un server OpenSSH è necessario aggiungere Subsystem sftp /usr/lib/openssh/sftp-server a sshd_config. Il binario sftp-server gestisce tutte le operazioni del protocollo SFTP. Nelle configurazioni chroot, ChrootDirectory deve appartenere a root e non deve essere scrivibile da altri utenti: questa è una causa comune di errori di configurazione. Il test della configurazione con sshd -t verifica la sintassi prima del ricaricamento del servizio.
SFTP per i flussi di lavoro di backup automatizzati
SFTP si integra bene nelle pipeline di backup automatizzate. Un server di backup usa l'autenticazione con chiave pubblica per connettersi senza password, consentendo trasferimenti pianificati con cron senza intervento umano. L'utente del backup è confinato tramite chroot alla directory di caricamento, limitando i danni nel caso in cui il server di backup venga compromesso. Il monitoraggio dei log per individuare errori di connessione SFTP e di trasferimento fornisce un primo avviso dei problemi di backup, prima che compromettano la possibilità di ripristino.
Strumenti client SFTP
Oltre al client sftp da riga di comando, strumenti grafici come FileZilla, Cyberduck e WinSCP supportano SFTP con interfacce drag-and-drop, gestione dei segnalibri e visualizzazioni affiancate delle directory. Questi strumenti sono apprezzati dagli sviluppatori e dagli amministratori che preferiscono lavorare con una GUI. Tutti usano lo stesso protocollo SFTP sottostante e l'autenticazione SSH, incluso il supporto per i file di chiavi SSH e per l'agente SSH del sistema.
SFTP vs SCP
Qual era la principale vulnerabilità di sicurezza nel protocollo SCP legacy che ha portato OpenSSH a sostituirlo con un'implementazione basata su SFTP?
SFTP e SCP: concetti chiave
SFTP è un sottosistema SSH, non è correlato a FTP. Fornisce operazioni complete sul file system remoto tramite SSH cifrato. SCP è più semplice, ma il protocollo legacy presentava una vulnerabilità di attraversamento dei percorsi lato server, corretta in OpenSSH 9.0 passando internamente a SFTP. FTPS aggiunge TLS a FTP, mentre SFTP è interamente basato su SSH. rsync tramite SSH fornisce una sincronizzazione incrementale efficiente. Le jail chroot limitano gli utenti SFTP alle directory designate.
Domande Frequenti
La lezione «SFTP e SCP: trasferimento sicuro dei file» è gratuita?
Sì — il testo completo di «SFTP e SCP: trasferimento sicuro dei file» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Cryptology Academy, passa a CoddyKit PRO. Il corso Cryptology Academy include 4 lezioni in totale.
Cosa imparerò in «SFTP e SCP: trasferimento sicuro dei file»?
Confronti SFTP e SCP con l’FTP non sicuro e comprenda le protezioni crittografiche che forniscono. Eserciti Cryptology Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Cryptology Academy?
Non è richiesta alcuna esperienza precedente. Cryptology Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.
Quanto tempo richiede la lezione «SFTP e SCP: trasferimento sicuro dei file»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Cryptology Academy?
Sì. Ogni lezione Cryptology Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Che cosa rende sicuro un protocollo
- SSH: proteggere l’accesso remoto
- SFTP e SCP: trasferimento sicuro dei file
- DNSSEC: autenticare le risposte DNS