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