GNU/Linux >> Linux Esercitazione >  >> Linux

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

SCP (Copia sicura) è uno strumento da riga di comando in Linux e Unix come i sistemi che viene utilizzato per trasferire file e directory attraverso i sistemi in modo sicuro sulla rete. Quando utilizziamo il comando scp per copiare file e directory dal nostro sistema locale al sistema remoto, nel back-end effettua una connessione ssh al sistema remoto. In altre parole, possiamo dire che scp utilizza lo stesso meccanismo di sicurezza SSH nel back-end, ha bisogno di password o chiavi per l'autenticazione.

In questo tutorial, discuteremo del comando scp in Linux con esempi pratici.

Sintassi del comando scp:

# scp [email protetta]_host:/

# scp [email protetta]_host:/files  

La prima sintassi del comando scp mostra come copiare file o directory dal sistema locale all'host di destinazione nella cartella specifica.

La seconda sintassi del comando scp mostra come i file dall'host di destinazione vengono copiati nel sistema locale.

Alcune delle opzioni più utilizzate nel comando scp sono elencate di seguito,

  •  -C         Abilita compressione
  •  -i           file di identità o chiave privata
  •  -l           limita la larghezza di banda durante la copia
  •  -P          numero di porta ssh dell'host di destinazione
  •  -p          Conserva autorizzazioni, modalità e tempo di accesso ai file durante la copia
  •  -q          Sopprime il messaggio di avviso di SSH
  •   -r          Copia file e directory in modo ricorsivo
  •   -v          output dettagliato

Passiamo ora agli esempi!!!!

Esempio 1) Copia un file dal sistema locale al sistema remoto usando scp

Supponiamo di voler copiare il pacchetto jdk rpm dal nostro sistema Linux locale al sistema remoto (172.20.10.8) usando il comando scp, usare il comando seguente,

[[email protected] ~]$ scp jdk-linux-x64_bin.rpm [email protected]:/opt
[email protected]'s password:
jdk-linux-x64_bin.rpm                          100%   10MB  27.1MB/s   00:00
[[email protected] ~]$

Il comando precedente copierà il file del pacchetto jdk rpm sul sistema remoto nella cartella /opt.

Esempio 2) Copia un file dal sistema remoto al sistema locale usando scp

Supponiamo di voler copiare un file dal sistema remoto al nostro sistema locale nella cartella /tmp, eseguire il seguente comando scp,

[[email protected] ~]$ scp [email protected]:/root/Technical-Doc-RHS.odt /tmp
[email protected]'s password:
Technical-Doc-RHS.odt                         100% 1109KB  31.8MB/s   00:00
[[email protected] ~]$ ls -l /tmp/Technical-Doc-RHS.odt
-rwx------. 1 pkumar pkumar 1135521 Oct 19 11:12 /tmp/Technical-Doc-RHS.odt
[[email protected] ~]$

 Esempio 3) Output dettagliato durante il trasferimento di file utilizzando scp (-v)

Nel comando scp, possiamo abilitare l'output dettagliato usando l'opzione -v, usando l'output dettagliato possiamo facilmente trovare cosa sta succedendo esattamente in background. Questo diventa molto utile nel debug della connessione , autenticazione e problemi di configurazione .

[email protected] ~]$ scp -v jdk-linux-x64_bin.rpm [email protected]:/opt
Executing: program /usr/bin/ssh host 172.20.10.8, user root, command scp -v -t /opt
OpenSSH_7.8p1, OpenSSL 1.1.1 FIPS  11 Sep 2018
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Reading configuration data /etc/ssh/ssh_config.d/05-redhat.conf
debug1: Reading configuration data /etc/crypto-policies/back-ends/openssh.config
debug1: /etc/ssh/ssh_config.d/05-redhat.conf line 8: Applying options for *
debug1: Connecting to 172.20.10.8 [172.20.10.8] port 22.
debug1: Connection established.
…………
debug1: Next authentication method: password
[email protected]'s password:

Esempio 4) Trasferire più file su un sistema remoto

È possibile copiare/trasferire più file su un sistema remoto utilizzando il comando scp in una volta sola, nel comando scp specificare i file multipli separati da spazio, l'esempio è mostrato di seguito

[[email protected] ~]$ scp install.txt index.html jdk-linux-x64_bin.rpm \
 [email protected]:/mnt
[email protected]'s password:
install.txt                                      100%    0     0.0KB/s   00:00
index.html                                       100%   85KB   7.2MB/s   00:00
jdk-linux-x64_bin.rpm                            100%   10MB  25.3MB/s   00:00
[[email protected] ~]$

Esempio 5) Trasferisci file su due host remoti

Usando il comando scp possiamo copiare file e directory tra due host remoti, supponiamo di avere un sistema Linux locale che può connettersi a due sistemi Linux remoti, quindi dal mio sistema Linux locale posso usare il comando scp per copiare file su questi due sistemi,

Sintassi:

# scp [e-mail protetta]_hosts1:/  [e-mail protetta]_host2:/

L'esempio è mostrato di seguito,

# scp [email protected]:~/backup-Oct.zip [email protected]:/tmp
# ssh [email protected] "ls -l /tmp/backup-Oct.zip"
-rwx------. 1 root root 747438080 Oct 19 12:02 /tmp/backup-Oct.zip

Esempio 6) Copia ricorsivamente file e directory (-r)

Usa l'opzione -r nel comando scp per copiare ricorsivamente l'intera directory da un sistema all'altro, l'esempio è mostrato di seguito,

[[email protected] ~]$ scp -r Downloads [email protected]:/opt

Utilizzare il comando seguente per verificare se la cartella Download è stata copiata sul sistema remoto o meno,

[[email protected] ~]$ ssh [email protected] "ls -ld /opt/Downloads"
drwxr-xr-x. 2 root root 75 Oct 19 12:10 /opt/Downloads
[[email protected] ~]$

Esempio 7) Aumenta la velocità di trasferimento abilitando la compressione (-C)

Nel comando scp, possiamo aumentare la velocità di trasferimento abilitando la compressione usando l'opzione -C, abiliterà automaticamente la compressione all'origine e la decompressione all'host di destinazione.

[email protected] ~]$ scp -r -C Downloads [email protected]:/mnt

Nell'esempio sopra stiamo trasferendo la directory Download con la compressione abilitata.

Esempio 8) Limitare la larghezza di banda durante la copia ( -l )

Usa l'opzione '-l' nel comando scp per limitare l'utilizzo della larghezza di banda durante la copia. La larghezza di banda è specificata in Kbit/s, l'esempio è mostrato di seguito,

[[email protected] ~]$ scp -l 500 jdk-linux-x64_bin.rpm  [email protected]:/var

Esempio 9) Specificare una porta ssh diversa mentre scp (-P)

Potrebbero esserci degli scenari in cui la porta ssh viene modificata sull'host di destinazione, quindi durante l'utilizzo del comando scp possiamo specificare il numero della porta ssh usando l'opzione '-P'.

[[email protected] ~]$ scp -P 2022 jdk-linux-x64_bin.rpm  [email protected]:/var

Nell'esempio sopra, la porta ssh per l'host remoto è "2022"

Esempio 10) Conserva i permessi, le modalità e il tempo di accesso ai file durante la copia (-p)

Usa l'opzione "-p" nel comando scp per preservare le autorizzazioni, il tempo di accesso e le modalità durante la copia dall'origine alla destinazione

[[email protected] ~]$ scp -p jdk-linux-x64_bin.rpm  [email protected]:/var/tmp
jdk-linux-x64_bin.rpm                            100%   10MB  13.5MB/s   00:00
[[email protected] ~]$

Esempio 11) Trasferimento di file in modalità silenziosa ( -q) in scp

Utilizzare l'opzione '-q' nel comando scp per sopprimere l'avanzamento del trasferimento, i messaggi di avviso e diagnostici di ssh. L'esempio è mostrato di seguito,

[[email protected] ~]$ scp -q -r Downloads [email protected]:/var/tmp
[[email protected] ~]$

Esempio 12) Usa Identifica file in scp durante il trasferimento ( -i )

Nella maggior parte degli ambienti Linux, è preferibile l'autenticazione basata su chiavi. Nel comando scp specifichiamo il file di identificazione o il file della chiave privata usando l'opzione '-i', l'esempio è mostrato di seguito,

[[email protected] ~]$ scp -i my_key.pem -r Downloads [email protected]:/root

Nell'esempio precedente, "my_key.pem" è il file di identità o il file della chiave privata.

Esempio 13) Usa un file 'ssh_config' diverso in scp ( -F)

Ci sono alcuni scenari in cui usi reti diverse per connetterti a sistemi Linux, potrebbe esserci qualche rete dietro server proxy, quindi in tal caso dobbiamo avere ssh_config diversi file.

Un diverso file ssh_config nel comando scp è specificato tramite l'opzione '-F', l'esempio è mostrato di seguito

[[email protected] ~]$ scp -F /home/pkumar/new_ssh_config -r Downloads \ 
[email protected]:/root
[email protected]'s password:
jdk-linux-x64_bin.rpm                     100%   10MB  16.6MB/s   00:00
backup-Oct.zip                            100%  713MB  41.9MB/s   00:17
index.html                                100%   85KB   6.6MB/s   00:00
[[email protected] ~]$

Esempio 14) Usa cifratura diversa nel comando scp (-c)

Per impostazione predefinita, scp utilizza la crittografia "AES-128" per crittografare i file. Se vuoi usare un'altra cifra nel comando scp, usa l'opzione '-c' seguita dal nome della cifra,

Supponiamo di voler usare la cifra '3des-cbc' nel comando scp durante il trasferimento dei file, esegui il seguente comando scp

[[email protected] ~]# scp -c 3des-cbc -r Downloads [email protected]:/root

Usa il comando seguente per elencare i cifrari ssh e scp,

[[email protected] ~]# ssh -Q cipher localhost | paste -d , -s -
3des-cbc,aes128-cbc,aes192-cbc,aes256-cbc,[email protected],\
aes128-ctr,aes192-ctr,aes256-ctr,[email protected],[email protected],\
[email protected]
[[email protected] ~]#

Questo è tutto da questo tutorial, per avere maggiori dettagli sul comando scp, fai gentilmente riferimento alla sua pagina man. Per favore condividi il tuo feedback e commenti nella sezione commenti qui sotto.

Leggi anche11 esempi di comandi "df" in Linux


Linux
  1. Esempi pratici di comando rsync in Linux

  2. Come trasferire file in modo sicuro utilizzando SCP

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

  4. Esempi di comandi di "spegnimento" in Linux

  5. Esempi di comandi resize2fs in Linux

Esempi di Rsync per trasferire file in Linux

Esempi utili di comandi Wget nel sistema Linux

15 esempi utili di comando touch nel sistema Linux

Comando SCP Linux per trasferire file in modo sicuro

lsof Command in Linux con esempi

Comando di comunicazione Linux con esempi