Come strumento, SSH richiede di fornire una password per l'utente SSH o una chiave SSH per l'host di destinazione. In questo tutorial, esploreremo come copiare file e directory usando il comando SCP.
Comando SCP
Il comando SCP è disponibile in qualsiasi sistema che ha i pacchetti SSH-Client e Server installati. È quindi possibile invocare il comando SCP con la seguente sintassi:
$ SCP User@Source_host: Ourte_FileName User@Destination_Host: Destination_FileName
Il comando precedente richiede pochi parametri come:
Assicurarsi che l'utente specificato abbia le autorizzazioni di lettura e scrittura sul file di destinazione o sulla directory dell'host remoto.
È inoltre possibile specificare altre opzioni nel comando SCP per modificare il suo comportamento predefinito. Le opzioni accettate includono:
Puoi controllare le altre opzioni eseguendo il seguente comando:
$ Man SCP
Nota: sebbene SCP mostri i messaggi descrittivi dei file e delle directory che si stanno copiando, non ti chiederà quando si sovrascrive i file. Pertanto, assicurarsi di fornire nomi univoci per i file che copia per evitare la perdita di dati.
Copia il file dal locale a remoto host
È possibile copiare un file dalla macchina locale in un host remoto eseguendo il seguente comando:
$ SCP Source_file.ext utente@remote_addr:/remote/dir
Ad esempio, per copiare il file ciao.TXT to/home/debian/file directory, possiamo eseguire il seguente comando:
$ SCP Ciao.txt [email protected]:/home/debian/files
Il comando ti chiederà la password dell'utente remoto specificato. Se hai aggiunto il tasto SSH all'host remoto, il comando accederà e trasferirà automaticamente i file di destinazione.
Tieni presente che il comando SCP preserverà il nome file originale se non specificato. Ad esempio, per salvare il file in una directory diversa, è possibile eseguire questo comando seguente:
$ SCP Ciao.txt [email protected]:/home/debian/files/hello_new.TXT
Questo cambierà il nome file da ciao.txt to hello_new.txt sulla macchina remota.
Copia directory dal locale a remoto host
Se si desidera copiare una directory dalla macchina locale a un host remoto, utilizzare l'opzione ricorsiva come mostrato nella seguente sintassi:
$ SCP -R SRC_DIR USER@remote_host:/path/on/remote/host/
Ad esempio, per copiare tutti i file nella directory /var /logs della macchina locale, è possibile eseguire il comando seguente:
$ Scp -r/var/logs/[email protected]:/Home/Debian/Logs
I flag -r indicano al comando SCP di copiare la directory in modo ricorsivo. Se la directory target non esiste sull'host remoto, lo SCP lo creerà automaticamente.
Copia file da host a host remoto
In alcuni casi, potrebbe essere necessario copiare i file da un host remoto a un altro host remoto. Puoi farlo eseguendo il seguente comando:
$ SCP user_1@host_1: src_file user_2@host_2: target_path
Il comando copierà i file specificati nel parametro SRC_FILE sul percorso specificato nel parametro Target_Path.
Assicurarsi che entrambe le macchine siano online e che possano comunicare tramite SSH.
Conclusione
Questo tutorial ti guida utilizzando il comando SCP per copiare i file e le directory tramite SSH.