SCP vs SFTP: quale dovresti utilizzare per il trasferimento di file
SCP (Secure Copy) e SFTP (Secure File Transfer Program) sono alternative all’FTP (File Transfer Protocol), utile per i trasferimenti di file non pianificati. Tutti e tre possono aiutare a spostare file da una posizione a un’altra su un supporto di rete. Tuttavia, FTP invia i dati in formato testo normale, mentre gli altri due utilizzano il protocollo SFTP (File Transfer Protocol) SSH per la comunicazione.
Cos’è l’SCP?
SCP è un programma di trasferimento file non interattivo apparso per la prima volta in 4.2 BSD. Storicamente utilizzava rlogin e SSH per trasmettere file tra due computer. Ciò lo rendeva soggetto a exploit remoti poiché eseguiva comandi sull’host remoto per avviare un trasferimento di dati.
I trasferimenti di file e directory in SCP possono avvenire tra una macchina locale e un host remoto o due host remoti. Ciò gli consente di essere più flessibile quando si lavora con diverse distribuzioni di tipo UNIX.
SCP può essere utilizzato anche con un carattere jolly per facilitare il trasferimento di più file in base a criteri di stringa parziale. Analogamente ai trasferimenti diretti, questi caratteri jolly possono essere utilizzati anche per inviare e ricevere file e directory.
Cos’è l’SFTP?
A differenza di SCP, SFTP è un programma di trasferimento file che funziona in modo simile a un prompt FTP e ad una shell remota. Fornisce un prompt interattivo che consente di navigare nel file system di una macchina remota e manipolarne il contenuto.
SFTP utilizza anche diverse funzionalità SSH, come la compressione o l’autenticazione con chiave pubblica, per connettersi agli host ed accedere alla modalità interattiva. Ciò lo rende un robusto browser di filesystem remoto per macchine UNIX headless.
SFTP può essere utilizzato anche per recuperare automaticamente i file se si utilizza un metodo di autenticazione non interattivo; in caso contrario, li recupera dopo aver eseguito con successo l’autenticazione interattiva.
SCP o SFTP: quale è meglio?
Esistono alcune somiglianze tra i due programmi di trasferimento file. Entrambi utilizzano la porta TCP 22 e funzionano su SSH rendendoli uguali in termini di sicurezza. Inoltre, entrambi i programmi supportano anche il trasferimento di file di grandi dimensioni, poiché non hanno limiti di dimensione dei file. Le principali differenze tra SCP e SFTP si riscontrano quindi nelle specifiche e nelle funzioni.
Funzionalità
Fondamentalmente, lo scopo fondamentale di SCP è copiare in modo sicuro i dati tra due macchine. Ciò è evidente nella sintassi di base del programma che richiede di fornire un’origine e una destinazione per ogni trasferimento di file. Ciò semplifica il lavoro per semplici trasferimenti di file una tantum.
Nel frattempo, SFTP è un client di trasferimento file più completo che fornisce un browser di file insieme a download di più file. Queste funzionalità rendono SFTP ideale per un utente che ha bisogno di trasferire costantemente file da e verso un host remoto.
Vincitore : SFTP
Velocità
Poiché sia SCP che SFTP utilizzano il protocollo SFTP per crittografare e trasportare file, i due programmi condividono la stessa velocità di trasferimento non elaborata durante l’invio o la ricezione dei dati. Tuttavia, avviare quel trasferimento è una storia diversa.
SCP è spesso più veloce nel raggiungere la massima velocità di trasferimento grezza di una connessione mentre SFTP resta indietro nel tentativo di “aumentare” la sua velocità. Inoltre, per avviare un trasferimento SFTP è necessario accedere a un prompt e utilizzare i comandi FTP per caricare e scaricare file.
Vincitore : SCP
Sicurezza
Sia SCP che SFTP si affidano al protocollo SSH per il loro livello di trasporto di base. Ciò consente loro di trasferire in modo sicuro i dati attraverso una rete utilizzando la crittografia di livello militare.
Nonostante ciò, SFTP esclude SCP fornendo il flag -f che consente di scrivere immediatamente tutti i dati trasferiti sul disco. Non solo, la sua interfaccia a riga di comando fornisce anche una serie di utilità che consentono di aggiornare i bit di autorizzazione di un file.
Vincitore : SFTP
Dimensione del file
Le versioni più moderne di SCP e SFTP in Linux sono binari a 64 bit. Ciò significa che entrambe le utility possono ipoteticamente supportare fino a 16 Exabyte di dati arbitrari purché anche il filesystem sottostante lo supporti.
Detto questo, SCP può ancora presentare alcuni problemi con file di grandi dimensioni, soprattutto quando si lavora con macchine simili a UNIX più vecchie. Ciò è dovuto principalmente a quei sistemi che eseguono versioni a 32 bit di SCP che possono gestire solo fino a 4 Gigabyte di file alla volta.
Vincitore : SFTP
Linee di comando
SCP non è interattivo e non può leggere gli script di comandi, quindi tutto deve essere scritto sulla riga di comando. Tuttavia, ciò consente anche di eseguirlo come parte di script di shell più ampi che possono essere utili quando si automatizzano le attività di amministrazione del sistema.
SFTP, d’altra parte, è interattivo, quindi può leggere comandi dai file. Anche se questo può essere utile anche per l’automazione, può essere più complicato poiché richiede una serie di comandi diversi da un normale script di shell.
Vincitore : SCP
Ripresa dei trasferimenti di file
SCP non supporta completamente questa funzione. Ciò rende il programma incline a ripetere interi trasferimenti su connessioni discontinue e intermittenti. Nel frattempo, SFTP lo supporta sia sul prompt della CLI con il suo -a
flag che tramite il client della riga di comando utilizzando i sottocomandi reget
e reput
.
Vincitore : SFTP
Quale dovresti utilizzare per il trasferimento di file: SCP o SFTP?
Sebbene abbiano somiglianze e differenze, dire che uno è migliore dell’altro non sarebbe giusto. Entrambi trasferiscono file e hanno funzionalità di sicurezza simili poiché vengono eseguiti su SSH. In definitiva, l’utilità scelta si baserà su ciò che è meglio per i requisiti del proprio ambiente.
Usa SCP per
- Quando desideri trasferire un singolo file o directory tra due host remoti.
- Quando desideri automatizzare il trasferimento dei dati sulla rete.
- Quando lavori con sistemi legacy di tipo UNIX senza supporto SFTP.
Utilizza SFTP per
- Quando trasferisci più file su più directory da un singolo host remoto.
- Quando desideri interagire con il filesystem di un host remoto senza aprire una nuova sessione SSH.
- Quando desideri un programma di trasferimento file affidabile che possa funzionare anche in condizioni di rete intermittenti.
Tenendo questo in mente, l’invio di dati tra due sistemi è solo il primo passo per comprendere come i computer comunicano su una rete. Scopri come la tua macchina Linux sa dove inviare i suoi dati consultando la nostra guida pratica alla risoluzione DNS utilizzando dig .
Credito immagine: Alejandro Escamilla tramite Unsplash . Tutte le modifiche e gli screenshot di Ramces Red.
Lascia un commento