GNU/Linux >> Linux Esercitazione >  >> Linux

Spiegazione del comando SCP di Linux:copia e trasferimento di file in modo sicuro {13 esempi}

Introduzione

SCP (Protocollo di copia sicura) è un protocollo di rete utilizzato per copiare in modo sicuro file/cartelle tra sistemi Linux (Unix) su una rete. Per trasmettere, usa il scp utilità della riga di comando, una variante più sicura del comando cp (copia).

SCP protegge i tuoi dati durante la copia su una connessione SSH (Secure Shell) crittografando i file e le password. Pertanto, anche se il traffico viene intercettato, le informazioni sono comunque crittografate.

Usa SCP quando:

  • Copiare file da un host locale a un host remoto.
  • Copiare file da un host remoto a un host locale.
  • Copiare file tra due server remoti.

Questa guida mostra come copiare i file utilizzando il comando SCP e include 13 esempi del comando utilizzato nella pratica .

Prerequisiti

  • Un accesso sicuro alla shell sul server
  • (opzionale) Accesso root sia sul client che sul server
  • Un accesso sicuro alla shell sul sistema server

Sintassi del comando SCP

La sintassi per l'utilizzo di scp il comando è:

scp [option] [[email protected]_host:path/to/source/file] [[email protected]_host:target/path] 

Se ometti:

  • il nome_utente dell'host (o della destinazione), il comando viene impostato automaticamente sull'utente corrente.
  • il percorso/alla/sorgente (o il obiettivo/percorso ) dal comando, il programma cerca (o copia) il file in locale.

Quando si lavora con file remoti, specificare sempre le specifiche dell'utente e dell'host.

Assicurati di utilizzare un account con accesso in lettura ai file che desideri copiare sul sistema di origine. Inoltre, devi utilizzare un account con accesso in scrittura alla directory in cui i file verranno salvati sul sistema di destinazione.

Opzioni comando SCP

Puoi aggiungere molti scp opzioni di comando al comando per personalizzare e velocizzare il processo. Le opzioni vengono aggiunte come attributi subito dopo il scp comando.

Ciascuna opzione ha una forma breve di un carattere e un equivalente descrittivo più lungo.

-1 Utilizza il protocollo 1.
-2 Usa il protocollo 2.
-4 Usa solo indirizzi Ipv4.
-6 Utilizza solo indirizzi IPv6.
-B Esegui in modalità batch, disabilitando tutte le query per l'input dell'utente.
-b buffer_size Specificare la dimensione del buffer utilizzata per il trasferimento dei dati. Se non specificato, utilizza il valore predefinito - 32768 byte.
-C Abilita compressione.
-c cipher Seleziona la cifra per la crittografia dei dati. Se non specificato, SCP utilizza l'impostazione predefinita - "AnyStdCipher".
-D debug_level Imposta il livello di debug (1, 2, 3 o 99).
-d Copia il file, solo se la directory di destinazione esiste già.
-F file Specifica un file di configurazione alternativo per SSH .
-h Mostra un elenco di opzioni di comando.
-i file Specificare il file da cui leggere l'identità per l'autenticazione a chiave pubblica.
-l limit Limitare la larghezza di banda (specificare il limite in Kbit/s).
-o ssh_option Imposta le opzioni su SSH nel formato ssh_config.
-P port Specificare la porta a cui connettersi. Se non specificato, SCP utilizza la porta 22.
-q Esegui SCP in modalità silenziosa.
-Q Disabilita la visualizzazione di eventuali statistiche di trasferimento file.
-r Copia ricorsivamente.
-S program Utilizzare un programma specifico per la connessione di crittografia.
-u Elimina il file sorgente una volta completata la copia.
-v Abilita la modalità dettagliata, che imposta il livello di debug su 2.

Esempi di comandi SCP

Per comprendere meglio questa utile utilità, dai un'occhiata al seguente scp esempi di comandi.

Copia un file da un server locale a un server remoto

Nell'esempio seguente, copiamo un file di esempio da un host locale a un server remoto:

scp Desktop/sample_example.txt [email protected]:/home/remote_dir 

Il comando include le seguenti informazioni:

  • Desktop/sample_example.txt - il nome del file da copiare e la sua posizione.
  • [email protected] - il nome utente e l'indirizzo IP del server remoto.
  • /home/remote_dir – la posizione in cui archiviare il file copiato.

Copia un file da un server remoto all'host locale

Per copiare un file di esempio da un host remoto a un host locale, eseguiamo:

scp 147.182.143.27:/home/remote_dir/sample_example.txt home/Desktop

Le informazioni fornite sono

  • [email protected] - il nome utente e l'indirizzo IP del server remoto da cui si trova attualmente il file.
  • /home/remote_dir/sample_example.txt - il nome del file da copiare e la sua posizione.
  • home/Desktop – la posizione in cui archiviare il file copiato.

Copia un file da un server remoto a un altro

Successivamente, vediamo come copiare un file da un server remoto a un altro server remoto utilizzando il scp comando:

scp [email protected]:/home/remote_dir/sample_example.txt [email protected]:home/Desktop

Il comando sopra specifica:

  • [email protected] - il nome utente e l'indirizzo IP del server remoto da cui si trova attualmente il file.
  • /home/remote_dir/sample_example.txt - il nome del file da copiare e la sua posizione.
  • [email protected] – il nome utente e l'indirizzo IP del server remoto su cui vogliamo copiare il file.
  • home/Desktop – la posizione in cui archiviare il file copiato sul server remoto.

Copia più file con SCP

SCP consente di copiare più file in un unico comando. Ad esempio, il comando seguente copia due file da un host locale a un server remoto:

scp example/sample1.txt example/sample2.txt [email protected]:/home/remote_dir

Include le seguenti informazioni:

  • example/sample1.txt – il nome e la posizione del primo file da copiare.
  • example/sample2.txt – il nome e la posizione del secondo file da copiare.
  • [email protected] - il nome utente e l'indirizzo IP del server remoto che riceve i file.
  • /home/remote_dir - la posizione in cui archiviare i file copiati sul server remoto.

Copia una cartella dall'host locale al server remoto in modo ricorsivo

Oltre ai file, scp può anche copiare in modo sicuro cartelle su o da server remoti. Il comando seguente mostra come copiare ricorsivamente una directory di esempio su un server remoto:

scp -r example [email protected]:/home/remote_dir

Il comando include:

  • -r – l'opzione per copiare ricorsivamente la cartella.
  • example – il nome della cartella che viene copiata dal server locale.
  • [email protected] - il nome utente e l'indirizzo IP del server remoto che riceve la cartella.
  • /home/remote_dir - la posizione in cui memorizzare la cartella copiata sul server remoto.

Copia un file con SCP utilizzando una porta specifica

Per impostazione predefinita, SCP utilizza la porta 22. Tuttavia, se un sistema remoto è configurato per ascoltare le richieste SSH su una porta diversa, utilizzare il –P passare per specificare la porta.

Ad esempio, il comando seguente copia un file da un server locale a un server remoto, utilizzando la porta 2222:

scp -P 2222  Desktop/sample_example.txt [email protected]:/home/remote_dir

I componenti del comando sopra sono:

  • -P 2222 – usa la porta 2222.
  • Desktop/sample_example.txt - il nome del file che vuoi copiare e la sua posizione.
  • [email protected] - il nome utente e l'indirizzo IP del server remoto che riceve il file.
  • /home/remote_dir - la posizione in cui archiviare il file copiato sul server remoto.

Copia un file con SCP in modalità silenziosa

Esecuzione di un scp comando in modalità silenziosa significa disabilitare la barra di avanzamento e la visualizzazione dei messaggi di non errore nell'output. Per farlo, devi aggiungere il -q opzione:

scp -q Desktop/sample_example.txt [email protected]:/home/remote_dir

Copia un file con SCP in modalità dettagliata

Puoi eseguire scp in modalità dettagliata aggiungendo il -v opzione che imposta il livello di debug su 2. In questo modo, stampa le informazioni di debug nell'output che possono aiutarti durante la risoluzione dei problemi.

Aggiungi il -v opzione dopo scp per abilitare la modalità dettagliata, come nell'esempio seguente:

scp -v Desktop/sample_example.txt [email protected]:/home/remote_dir

Copia un file con SCP e Limita larghezza di banda

Un'altra opzione utile è limitare la larghezza di banda utilizzata da scp comando aggiungendo il -l parametro. Ciò è particolarmente utile quando si copiano file di grandi dimensioni per evitare che SCP prosciughi la larghezza di banda.

Quando si limita la larghezza di banda, è necessario specificare il numero in Kilobit/s. Tieni presente che 1 byte =8 bit. Pertanto, se si desidera limitare la larghezza di banda per SCP a 100 KB/s, il valore per l in kbps sarebbe 800 (100 x 8), come nel comando seguente:

scp -l 800 Desktop/sample_example.txt [email protected]:/home/remote_dir

Copia un file con SCP Faster

Per velocizzare il trasferimento di file da un server all'altro, aggiungi il -C opzione che comprime il file durante il trasferimento. Una volta che il file raggiunge la sua destinazione, torna alla sua dimensione normale.

scp -C Desktop/sample_example.txt [email protected]:/home/remote_dir

Copiare un file con SCP utilizzando un codice specifico

Per impostazione predefinita, SCP utilizza AES-128 per crittografare i file. Tuttavia, il -c l'opzione consente di modificare la cifra che SCP utilizzerà per crittografare il file.

Ad esempio, per aumentare la sicurezza, puoi passare alla crittografia 3des, come nell'esempio seguente:

scp -c 3des Desktop/sample_example.txt [email protected]:/home/remote_dir

Copia un file con SCP utilizzando IPv4 o IPv6

Puoi forzare SCP a utilizzare solo IPv4 o IPv6 a seconda delle tue esigenze aggiungendo -4 o -6 attributo.

Per copiare un file di esempio da un server locale a un host remoto utilizzando solo IPv6, eseguire:

scp -6 Desktop/sample_example.txt [email protected]:/home/remote_dir

Copiare un file con SCP Preserving File Attributes

Per copiare un file utilizzando SCP e conservarne gli attributi come modifica e tempi di accesso, modalità e autorizzazioni, utilizza il -p opzione:

scp -p Desktop/sample_example.txt [email protected]:/home/remote_dir

Linux
  1. 14 Esempi di comandi SCP per trasferire file in modo sicuro in Linux

  2. Copia file e directory in Linux

  3. Come copiare in modo sicuro file tra host Linux utilizzando SCP e SFTP

  4. comando Linux cp

  5. Come usare il comando Rsync in Linux?

Come copiare file in Linux usando il comando CP

4 modi per trasferire file e directory su Linux

Spiegazione del comando Arping su Linux

Comando SCP Linux per trasferire file in modo sicuro

Copia i file in modo sicuro con il comando SCP

apropos comando Linux spiegato {con esempi}