SCP (Secure Copy Protocol) è un protocollo di trasferimento file di rete che consente trasferimenti di file facili e sicuri tra un sistema remoto e un host locale o due posizioni remote. Utilizza il meccanismo Secure Shell (SSH) per fornire funzionalità di autenticazione e crittografia per dati e credenziali.
Gli amministratori utilizzano il comando SCP Linux per semplificare il processo di trasferimento dei dati tra i server Linux poiché non richiede alcun accesso a un server. Inoltre, offre una sicurezza migliore rispetto al File Transfer Protocol (FTP) ed è conforme agli standard del Consiglio di sicurezza PCI.
In questo articolo imparerai come utilizzare i comandi SCP su un host remoto, come un VPS. Analizzeremo il comando SCP di base e forniremo esempi per aiutarti a capire meglio come funzionano i comandi Linux.
Comprensione della sintassi del comando SSH SCP
La sintassi di base del comando SCP per eseguire un trasferimento di file tra due sistemi remoti è la seguente:
scp [other options] [source username@IP]:/[directory and file name] [destination username@IP]:/[destination directory]
Ecco una ripartizione del comando:
- [altre opzioni] ‒ modificatori che puoi aggiungere al comando SCP. Tratteremo i più popolari in seguito.
- [nome utente sorgente@IP] ‒ nome utente e IP della macchina che ospita il file di destinazione.
- :/ ‒ informa il comando SCP che l'utente digiterà nella directory di origine.
- [nome directory e file] ‒ la posizione e il nome del file.
- [nome utente di destinazione@IP] ‒ nome utente e IP del sistema di destinazione.
- [directory di destinazione] ‒ la directory di destinazione in cui verrà salvato il file.
L'esempio seguente mostra il comando SCP in uno scenario reale:
scp -p [email protected]:/media/scp.png [email protected]:/desktop/destination
Se stai copiando da o verso un host locale, non avrai bisogno dell'indirizzo IP e del percorso di destinazione o di origine come /desktop/folder_name .
Copiare file usando il comando SCP
La cosa migliore di SCP è che ti consente di trasferire in modo sicuro file tra due host remoti o una macchina remota e un sistema locale. Le sezioni seguenti tratteranno come funzionano i comandi SCP per ogni tipo di trasferimento.
Importante! Indipendentemente dal tipo di trasferimento che esegui con SCP, non dovresti essere connesso al server remoto tramite SSH.
Copia da un server locale a un host remoto
Copieremo un file locale scp.zip a un server remoto chiamato root . L'indirizzo IP del server viene dopo il nome utente.
scp /users/Hostinger/desktop/scp.zip [email protected]:/writing/article
Se non hai impostato la conferma automatica del client SSH, ti verrà chiesto di inserire la password utente della macchina remota e vedrai un indicatore di avanzamento. Apparirà come segue:
Password di[email protected]’s password:
novel3.zip 100% 0 0.0KB/s 00:00
Supponiamo che il server remoto sia impostato per ascoltare le connessioni SSH su una porta diversa dalla porta SSH predefinita 22. In questo caso, dovrai specificare quella porta usando il -P opzione.
scp -P 2322 /users/Hostinger/desktop/scp.zip [email protected]:/writing/article
Se vuoi anche cambiare il nome del file durante l'operazione di trasferimento, il tuo comando sarà simile a questo (se non usi la porta predefinita, aggiungi –P seguito dal numero di porta appropriato):
scp /users/Hostinger/desktop/scp.zip [email protected]:/writing/article/howtoscp.zip
Usa la –r opzione seguita dalla stessa riga di comando per copiare una directory con più file o sottodirectory.
scp -r /users/Hostinger/desktop [email protected]:/writing/article
Trasferimento di un file remoto su una macchina locale
L'inversione dei sistemi di origine e di destinazione del comando deve riflettersi nella sintassi. Questa volta copieremo il scp.zip file dallo stesso host remoto al nostro computer locale.
scp [email protected]:/writing/articles/SCP.zip Users/Hostinger/Desktop
L'esecuzione di questo comando richiederà lo stesso output di accesso SSH che richiede una password. Non apparirà solo se i privilegi sudo hanno disabilitato l'autenticazione o hanno costretto il client SSH a utilizzare una chiave privata sul tuo computer.
Spostamento sicuro di un file tra host remoti
Per copiare file da un server remoto a un altro, dovrai inserire le password per entrambi gli account dopo aver eseguito il seguente comando nel tuo terminale:
scp [email protected]:/writing/article/scp.zip [email protected]:/publishing
Il comando sopra copia il file sorgente /writing/article/scp.zip dal primo ospite al secondo. Per copiare le cartelle, usa -r opzione e specificare il percorso della cartella invece del file al suo interno.
In circostanze normali, il file passerà direttamente dal primo server remoto al secondo. Tuttavia, se desideri reindirizzare l'operazione tramite la tua macchina, aggiungi -3 opzione come mostrato nel comando seguente:
scp -3 [email protected]:/writing/article/scp.zip [email protected]:/publishing
Utilizzo del comando SCP con le opzioni
Gli esempi precedenti presentano diverse opzioni SCP che modificano il comando. Esistono numerose opzioni comuni in formato a carattere singolo (-o) e il loro equivalente descrittivo (–opzione).
Il -q Il parametro, ad esempio, richiede al sistema di eseguire l'operazione in modalità silenziosa. Disattiva l'output del misuratore di avanzamento, nonché i messaggi di avviso e diagnostici. Usa -v parametro per abilitare l'output dettagliato per un debug più semplice:
scp -v /users/Hostinger/desktop/scp.zip [email protected]
Il -4 e -6 le opzioni determinano la versione del protocollo utilizzata, che è IPv4 o IPv6. Puoi anche configurare i requisiti dell'indirizzo IP in modo più completo con la parola chiave address-family.
scp -6 [email protected]:/users/Hostinger/desktop/scp.zip
Il -p l'opzione conserva le modifiche, i tempi di accesso e le modalità dal file di origine.
scp -p /users/Hostinger/desktop/scp.zip [email protected]
Usa la -stat opzione per controllare i dettagli dei file copiati, come la data di creazione e la dimensione del file.
La -C l'opzione abilita la compressione dei dati per file o directory di grandi dimensioni durante l'operazione di trasferimento. Tieni presente che questa opzione non funziona su file compressi, come .zip e .rar archivi.
scp -C Folder [email protected]
Da non confondere con -C , il -c opzione consente di specificare l'algoritmo di crittografia che il client dovrebbe utilizzare. Alcuni dei valori che puoi inserire sono "aes256-ctr ‘, ‘aes256-cbc ' e '3des-cbc '. L'opzione predefinita nella configurazione della shell è "AnyStdCipher '.
scp -c 3des-cbc /users/Hostinger/desktop/scp.zip [email protected]
Importante! Fai attenzione quando utilizzi le opzioni SCP poiché fanno distinzione tra maiuscole e minuscole.
Conclusione
Il protocollo di copia sicura semplifica il trasferimento di file tra più sistemi remoti su una rete. Ti consente di copiare in modo sicuro i file da un host remoto a un altro senza dover accedere tramite una connessione crittografata.
Inoltre, questo metodo di trasferimento file remoto crittografa i tuoi dati con una shell sicura, garantendo la riservatezza delle informazioni trasmesse.
Ci auguriamo che questo articolo ti abbia aiutato a capire come funziona il comando SCP e come utilizzarlo correttamente sui server Linux.
Come utilizzare il comando SCP per il trasferimento di file – Domande frequenti
Come si esegue SCP su Windows?
Puoi eseguire SCP su Windows tramite PuTTY. Questo emulatore di terminale fornisce PSCP (PuTTY Secure Copy client) per il trasferimento di file utilizzando una connessione SSH.
Dopo aver scaricato e installato PuTTY, sarai in grado di utilizzare il comando SCP tramite l'interfaccia della riga di comando di Windows.
La sintassi SCP funziona in modo simile su macchine Windows. L'unica differenza è che dovresti iniziare ogni riga di comando con pscp -scp .
Ecco la sintassi di base del comando SCP su Windows:pscp -scp [other options] [source username@IP]:/[directory and file name] [destination username@IP]:/[destination directory]
Posso passare la password nel comando SCP?
Una delle migliori caratteristiche del comando SCP è la sua crittografia della password, che protegge file e directory durante il processo di trasferimento. Tuttavia, l'immissione della password utente per avviare ogni trasferimento di file può richiedere molto tempo, in particolare se devi spostare più file.
L'implementazione di SSHPASS sulla riga di comando di SCP ti consentirà di automatizzare il processo di autenticazione, ignorando la richiesta della password .
Questa utilità fornisce l'autenticazione della password interattiva da tastiera, consentendo di utilizzare un comando a riga singola per trasferire i file dall'origine a un sistema di destinazione come segue:sshpass -p [password] scp -r /users/Hostinger/desktop [email protected]:/writing/article
Puoi abilitare SSHPASS generando coppie di chiavi SSH. Se stai utilizzando un computer Windows, PSCP ti consentirà di passare la password utilizzando il -pw opzione:sshpass -pw [password] [email protected]:/writing/article
Come faccio a fermare o mettere in pausa SCP?
Puoi mettere in pausa il processo con il segnale di "terminal stop" (SIGTSTP) premendo Ctrl+Z . Per riprendere il processo, invia il segnale SIGCONT digitando fg .
Se SIGCONT non funziona, l'altra opzione prevede l'utilizzo di rsync utilità. Confronta i file o le directory di origine con quelli caricati parzialmente per evitare duplicazioni, riprendendo il download indirettamente.
Ecco la sintassi di base di rsync :rsync [option] user@host:[file/directory origin] [destination]
L'esempio seguente mostra come utilizzare rysync per copiare ricorsivamente un .zip file e conservane la proprietà:rsync -a /users/Hostinger/desktop/scp.zip [email protected]