Come utilizzare il comando scp per trasferire file in modo sicuro in Linux

Supponiamo di voler trasferire alcuni file tra server su un sistema Linux. Esistono molti modi per eseguire l’attività, ma se la tua priorità è trasferire i file in modo sicuro, ti rimangono alcune opzioni. La soluzione più semplice è utilizzare il comando scp o secure copy per trasferire i file senza preoccuparsi della sicurezza. In questo articolo, spiegheremo come utilizzare i file di trasferimento in modo sicuro utilizzando il comando scp sul tuo sistema Linux.

Trasferisci file con il comando scp in Linux (2023)

Cos’è il comando scp in Linux

Quando si tratta di trasferire file su una rete sicura, il comando scp può essere molto utile. È l’acronimo di Secure Copy Protocol e trasferisce file e directory tra due sistemi tramite connessione SSH (Secure Shell). Con ssh, puoi essere certo della sicurezza dei tuoi file poiché sono crittografati per impostazione predefinita. In termini più semplici, il comando scp è una versione più sicura del comando cp, di cui puoi leggere tutto nel nostro articolo sui comandi del terminale Linux.

Come utilizzare il comando scp: sintassi e opzioni

Prima di poter trasferire i file tramite scp, vediamo la sintassi e le opzioni del comando proprio qui:

scp <[email protected]_ip_address:path/to/source/file> <[email protected]_ip_address:destinazione/percorso>

Comprensione della sintassi:

  • Primo, <[email protected]_ip_address:path/to/source/file> specifica il sistema ‘source’ da cui devi trasferire i tuoi file/directory.
  • Secondo, <[email protected]_ip_address:target/path> specifica il sistema ‘target’ a cui vuoi trasferire i tuoi file/directory.

Se lasci uno dei parametri precedenti, il comando scp in Linux cercherà prima il file e poi lo copierà localmente. Alcune delle opzioni da abbinare al comando sono:

OptionsDestination-PSpecifica quale porta connettere con il sistema host. Se omesso, utilizzerà la porta 22 per impostazione predefinita.-pPreserva i tempi di modifica, i tempi di accesso e le modalità dal file originale quando viene copiato nel sistema di destinazione.-rCopia l’intera directory nel sistema di destinazione in modo ricorsivo.-JUsato per connettere il sistema di origine e sistema di destinazione tramite un sistema proxy (host di salto).-3quando viene utilizzato questo flag, copia i file sia sul sistema di destinazione che sul sistema locale-4forza il comando scp a utilizzare solo indirizzi IPv4.-6forza il comando scp per utilizzare solo indirizzi IPv6.

  Come trovare l'indirizzo IP del tuo router su Windows, Linux, Android, ecc.

Come copiare i file usando il comando scp

Prima di utilizzare il comando scp in Linux, è necessario soddisfare alcuni prerequisiti sia sul sistema host che su quello di destinazione:

  • ssh dovrebbe essere installato
  • accesso root o qualsiasi utente con privilegi sudo

Copia i file dall’host locale alla destinazione remota

Se hai un file che devi trasferire dal tuo sistema locale a una destinazione remota, devi usare la seguente sintassi:

scp @:

Se la sintassi di cui sopra può sembrare complicata, un esempio lo chiarirà:

scptest.txt [email protected]:/casa/remoto2/Documenti/

Nell’esempio sopra:

  • test.txt è il nome del file da trasferire e si trova nella directory corrente del sistema locale.
  • test è il nome utente sul sistema di destinazione.
  • 139.144.11.105 è l’indirizzo IP del sistema di destinazione.
  • /home/remote2/Documents/ è la posizione sul sistema di destinazione in cui verrà salvato il file trasferito.

Copia i file dall’host remoto alla destinazione locale

Se devi trasferire un file da un host remoto al tuo computer locale, usa la seguente sintassi del comando scp sul tuo sistema Linux:

scp @:

Ad esempio, supponiamo che tu debba trasferire un file chiamato test.py dal server remoto su cui stai lavorando, usa questo comando:

scp [email protected]:/home/test/test1.py ~/test1.py

In questo esempio:

  • test è il nome utente dell’host remoto.
  • 10.10.11.113 è l’indirizzo IP dell’host remoto.
  • /home/test/test1.py è il percorso del file da trasferire dall’host remoto.
  • ~/test1.py è il nome del file dopo che è stato trasferito sulla macchina locale e memorizzato nella home directory.

Trasferisci file da un host remoto a un altro target remoto

Con il comando scp, non solo puoi trasferire file tra il tuo sistema locale e un computer remoto, ma anche trasferire file tra due sistemi remoti. Tuttavia, prima di poter trasferire file da un sistema remoto a un altro sistema remoto, si consiglia di generare una chiave ssh privata e una chiave ssh pubblica sul sistema di origine e archiviare una copia della chiave pubblica nel sistema di destinazione.

  Come giocare a Battlefield 1 su Linux

In genere, gli utenti si lamentano dell’errore “Verifica chiave host non riuscita” durante il trasferimento di file tra due sistemi remoti. Per aggirare l’errore, utilizzare una chiave ssh come misura aggiuntiva. Abbiamo spiegato come puoi farlo proprio qui:

1. Genera una coppia di chiavi pubblica/privata sul server di origine con questo comando:

ssh-keygen -t

2. Per gli algoritmi di crittografia, puoi utilizzare “rsa”, che è l’algoritmo più comunemente utilizzato o qualsiasi altro algoritmo di tua scelta.

3. Quindi, ti verrà chiesto di scegliere la posizione in cui archiviare la chiave ssh. Puoi memorizzarlo in qualsiasi posizione a tua scelta o nella posizione predefinita.

4. Per la passphrase, puoi inserire qualsiasi cosa di tua scelta o lasciarla vuota premendo Invio.

5. Quindi, copia la chiave pubblica sul server di destinazione utilizzando il comando seguente. Con questo, puoi persino accedere al sistema di destinazione senza password usando ssh.

ssh-copy-id @

Nota: il metodo di accesso senza password funzionerà solo per l’utente per il quale hai generato la chiave ssh.

6. Dopo aver creato e archiviato la chiave ssh sul server remoto, utilizzare questa sintassi del comando scp per scambiare file tra due sistemi remoti che eseguono Linux:

scp @: @:

Diciamo che devi trasferire un file chiamato test.txt da un host remoto a un altro ricevitore remoto, usa il comando:

scp [email protected]:/home/test1/test.txt [email protected]:/home/remote2/Documenti/test1.txt

In questo esempio:

  • remote1 è il nome dell’utente nell’host del mittente remoto
  • 10.10.11.113 è l’indirizzo IP dell’host del mittente remoto
  • /home/test1/test.txt è il percorso del file da inviare
  • remote2 è il nome dell’utente nella destinazione del ricevitore remoto
  • 10.11.27.111 è l’indirizzo IP della destinazione del ricevitore remoto
  • /home/remote2/Documents/test1.txt è il nome e il percorso da salvare per il file da ricevere.
  Come utilizzare il comando finger su Linux

Trasferisci più file usando il comando scp

Il trasferimento di più file uno per uno può essere un compito noioso per chiunque. Invece, puoi usare la sintassi seguente per scambiare file usando il comando scp su Linux:

scp @:

Ad esempio: supponiamo di dover inviare quattro file, inclusi test1.txt, test2.py, test3.sh e test4.c, a un ricevitore remoto, puoi utilizzare il comando seguente:

scp -P 22 test1.txt test2.py test3.sh test4.c [email protected]:/home/remote_1/Documenti

Capiamo come funziona il comando nell’esempio e cosa fa:

  • -p 2222 viene utilizzato per specificare di connettersi tramite la porta 22
  • test1.txt test2.py test3.sh test4.c sono i nomi dei file da trasferire
  • remote_1 è il nome utente del sistema ricevente
  • 10.10.11.113 è l’indirizzo IP del destinatario
  • /home/remote_1/Documents si riferisce al percorso in cui archiviare il file ricevuto.

Puoi persino utilizzare i caratteri jolly per inviare più file con la stessa estensione come mostrato di seguito:

scp . @:

Ad esempio, se devi inviare tutti i file .py a un server remoto, usa il seguente comando scp nel terminale Linux:

scp *.py [email protected]:/home/remoto_1/

Qui,

  • *.py indica tutti i file Python
  • remote1 è il nome utente del destinatario
  • 10.10.11.113 è l’indirizzo IP del destinatario
  • /home/remote_1/ è la posizione in cui archiviare il file ricevuto

Domande frequenti

Il trasferimento di file SCP è sicuro?

Il Secure Copy Protocol o scp è un protocollo basato sulla tecnologia SSH e utilizza la crittografia e l’autenticazione per lo scambio di file tra due host. Ciò garantisce la completa sicurezza e integrità dei dati tra i due host.

SCP è più sicuro di SFTP?

Entrambi i protocolli SCP e SFTP sono alla pari in termini di sicurezza. Il vantaggio principale dell’utilizzo di scp su SFTP sono le elevate velocità di trasferimento che sono particolarmente utili nelle reti ad alta latenza.

Trasferisci i file in modo sicuro usando il comando scp in Linux

Ad un certo punto, ogni utente deve scambiare alcuni file sulla rete. Il comando scp semplifica il trasferimento di file in modo sicuro ed efficiente anche su una rete ad alta latenza. Sicuramente, anche conoscere le varie opzioni e la sintassi di scp può essere utile. Puoi anche fare riferimento alle nostre guide su come rinominare un file in Linux e su come eliminare un file in Linux per migliorare ulteriormente le tue capacità di gestione dei file sul sistema operativo. Ci auguriamo che questo articolo ti abbia aiutato a imparare come utilizzare il comando scp per trasferire file su computer Linux. Se riscontri problemi durante l’utilizzo del comando, faccelo sapere nella sezione commenti.