GNU/Linux >> Linux Esercitazione >  >> Linux

Come utilizzare il comando SCP per il trasferimento di file

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]


Linux
  1. Come utilizzare il comando SFTP per il trasferimento di file sicuro

  2. Comando SCP in Linux:come usarlo, con esempi

  3. Comando SCP Linux – Come trasferire file SSH da remoto a locale

  4. Utilizzare Scp per trasferire un file dalla directory locale X alla directory remota Y?

  5. Come trasferire file in modo sicuro utilizzando il comando SCP in Linux

Come usare il comando Tronca in Linux

Come utilizzare un comando file in Linux

Come utilizzare il Bluetooth su Ubuntu per il trasferimento di file

Come utilizzare il comando SCP su Linux

Come usare il comando lsof in Linux

Come utilizzare il comando shred Linux