GNU/Linux >> Linux Esercitazione >  >> Linux

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

Di recente, abbiamo esaminato rsync comando per sincronizzare i file tra le posizioni e abbiamo discusso della somiglianza di utilizzo e sintassi durante la duplicazione di file e directory con cp comando. In quell'articolo, abbiamo esaminato lo spostamento dei bit avanti e indietro sulla stessa scatola, tra filesystem o tra dispositivi. In un prossimo articolo, esamineremo di più rsync come strumento per mantenere i filesystem remoti sincronizzati con una versione locale o di backup. In questo articolo, voglio dare un'occhiata a uno degli strumenti più utili e utilizzati nella casella degli strumenti dell'amministratore di sistema di Linux:il scp comando.

Cos'è SCP?

Copia protetta o scp , è una versione sicura del vecchio rcp strumento (che è ancora utilizzato, ma meno comune) incluso nella suite di strumenti OpenSSH.

OpenSSH è iniziato come un fork BSD del protocollo di comunicazione sicura SSH originale, che da allora è stato rilicenziato come "non libero" e quindi non generalmente disponibile per Linux. OpenSSH è ancora mantenuto con la licenza BSD ed è disponibile per un'ampia gamma di piattaforme. Include diversi strumenti comuni per l'accesso remoto sicuro, inclusa la generazione di chiavi, scp e sftp (una versione sicura di FTP, di cui parleremo tra poco).

Di recente, gli sviluppatori OpenSSH hanno indicato di considerare scp essere deprecato (credono che sia "obsoleto, inflessibile e non facilmente risolvibile"). Non è chiaro quando cesserà di essere disponibile nelle versioni future di OpenSSH, anche se è difficile immaginare che verrà presto abbandonato.

Usa SCP

L'utilità di scp sta nella sua semplicità. Lo uso per spostare rapidamente i file in un filesystem remoto dalla shell:

skipworthy ~ scp ./enable/foo/testfoo showme:/home/skipworthy/enable

skipworthy@showme's password:

testfoo 100% 25 8.0KB/s 00:00

Facile come una torta. Posso ottenere un file anche da una posizione remota:

skipworthy ~ scp showme:/home/skipworthy/enable/demofoo ~/enable/

skipworthy@showme's password:

demofoo 100% 0 0.0KB/s 00:00

 skipworthy ~ ls ./enable

bar demofoo foo

Le opzioni di connessione disponibili sono le stesse di ssh . Ad esempio:

skipworthy ~ scp -P 2020 -i ~/.ssh/id_rsa ./test.txt showme:/home/skipworthy/enable/

test.txt 100% 0 0.0KB/s 00:00    

-P specifica la porta per ssh connessione, -i specifica un ssh chiave id da utilizzare per l'autenticazione:entrambe queste opzioni sono utili per gli script. Nota che il scp -P differisce da ssh -p per specificare la porta. Nell'esempio sopra, ho impostato la posizione di un ssh chiave (~/.ssh/id_rsa ), che ho anche generato utilizzando il toolkit OpenSSH, per autenticare l'accesso al dispositivo remoto. Ulteriori informazioni sulle copie di file SSH qui.

Quindi puoi vedere scp è uno strumento davvero utile da avere a portata di mano. C'è qualche discussione sulla saggezza dell'utilizzo di questo strumento in un ambiente sicuro, quindi YMMV. Suggerirei di leggere e decidere da solo.

[ Potrebbe interessarti anche: Strumenti di amministrazione di sistema:utilizzo di rsync per gestire il backup, il ripristino e la sincronizzazione dei file ]

Alternative

E se, per qualsiasi motivo, non riuscissimo a utilizzare scp ? Consiglio altre due opzioni abbastanza facili da usare:rsync , di cui abbiamo parlato qui e di cui parleremo più approfonditamente in un altro articolo, e sftp . Sebbene nessuna di queste opzioni sia conveniente come scp , entrambi hanno alcune funzioni utili.

sftp è più o meno come sembra:FTP sicuro. Funziona come FTP su una connessione gestita da SSH. Anche se non è così semplice da usare come il "one and done" scp comando, offre una gamma di opzioni di filesystem più sofisticate e la possibilità di connettersi a un filesystem remoto in modo interattivo. Richiede che il filesystem di destinazione sia configurato per sftp accesso.

Connettiamoci a un sftp server in modo interattivo:

skipworthy ~ sftp enable@ganymede

enable@ganymede's password:

Connected to ganymede.

sftp> pwd

Remote working directory: /upload

sftp> mkdir test

sftp> ls -al

drwxr-xr-x 3 1002 1002 18 Nov 24 21:53 .

drwxr-xr-x 3 0 1002 20 Nov 24 21:33 ..

drwxr-xr-x 2 1002 1002 6 Nov 24 21:53 test

Se premiamo Tab due volte, possiamo vedere un elenco di comandi disponibili nella shell:

sftp>

bye cd chdir chgrp chmod chown df dir       

exit get help lcd lchdir lls lmkdir ln        

lpwd ls lumask mkdir mget mput progress put       

pwd quit reget rename reput rm rmdir symlink   

version ! ?         

Quindi puoi vedere che è possibile interagire con il filesystem remoto. Anche in questo caso, i principali svantaggi sono che il target deve essere configurato per sftp l'accesso e l'accesso a una directory specifica deve essere configurato e limitato dall'amministratore di quel sistema. Questo lo rende un'opzione più sicura, anche se meno conveniente, rispetto a scp . Inoltre, tieni presente che sebbene non sia realmente possibile eseguire trasferimenti di file improvvisati come scp , è possibile scrivere script e inserire alias di shell per farlo funzionare più agevolmente se questo è il tuo problema.

[ Stai pensando alla sicurezza? Dai un'occhiata a questa guida gratuita per aumentare la sicurezza del cloud ibrido e proteggere la tua azienda. ] 

Concludi

Nota finale:entrambi questi strumenti si basano sulla casella degli strumenti SSH, che è una parte molto importante dell'amministrazione dei sistemi Linux, quindi consiglio vivamente di familiarizzare con esso. Considera questi eccellenti articoli degli autori di Enable Sysadmin:

  • Come SSH stabilisce una comunicazione sicura
  • Otto modi per proteggere l'accesso SSH sul tuo sistema
  • SSH senza password che utilizza coppie di chiavi pubblica-privata

Linux
  1. Come trasferire file tra due computer utilizzando i comandi nc e pv

  2. Come caricare o scaricare file/directory utilizzando sFTP in Linux

  3. Trasferisci in modo sicuro file e cartelle tra computer utilizzando Croc

  4. Come trasferire file tra server in Linux utilizzando SCP e FTP

  5. Come copiare più file contemporaneamente usando scp

Come eseguire il backup e il ripristino di file utilizzando BorgBackup in Linux

Come eseguire il backup di file e directory utilizzando Rsync in Linux

Come condividere file di giochi Steam tra Linux e Windows

Come copiare file in Linux usando il comando CP

Come copiare file e directory nel terminale Linux

Come eliminare file e directory utilizzando la riga di comando di Linux