Introduzione
SFTP (Safe File Transfer Protocol) è incluso insieme a SSH come modo sicuro per trasferire file tra sistemi remoti. Consente inoltre agli utenti di eseguire attività amministrative di base su server remoti, come la gestione di file e directory e l'impostazione delle autorizzazioni dei file.
In questo tutorial, ti mostreremo come utilizzare SFTP per trasferire file tra un sistema locale e uno remoto utilizzando l'interfaccia del terminale.
Prerequisiti
- Accesso a un sistema locale ea un server remoto, collegati tramite una coppia di chiavi pubbliche SSH.
- Una connessione Internet funzionante.
- Accesso alla finestra del terminale.
Come connettersi tramite SFTP
SFTP stabilisce una connessione sicura tra i sistemi utilizzando il protocollo di rete SSH. Ciò ti consente di connetterti a qualsiasi sistema che abbia una copia della tua chiave SSH pubblica.
La connessione a un altro sistema tramite SFTP segue la stessa sintassi dei comandi della connessione tramite SSH. Il comando richiede di fornire un nome utente e un nome host remoto o un indirizzo IP per il sistema a cui desideri accedere:
sftp [username]@[remote hostname or IP address]
Nell'esempio seguente, ci stiamo connettendo a un sistema con l'indirizzo IP 192.168.100.5 usando phoenixnap nome utente:
sftp [email protected]
Per terminare una connessione in corso, usa:
exit
Come trasferire file utilizzando SFTP
L'utilizzo di SFTP consente di trasferire file da un server remoto a un sistema locale e viceversa.
Trasferisci file remoti su un sistema locale
Usa il get
comando nell'interfaccia SFTP per trasferire un file da un server remoto al tuo sistema locale:
get [path to file]
Ad esempio, per trasferire un file chiamato example_document.txt dalla Casa del sistema remoto directory nel sistema locale, utilizzare:
get example_document.txt
Per impostazione predefinita, SFTP trasferisce i file alla Home del sistema locale directory. Per trasferire i file in una directory diversa, aggiungi il percorso della directory alla fine di get
comando:
get example_document.txt Downloads
Per modificare il nome del file sul sistema locale, aggiungi il nuovo nome del file alla fine di get
comando.
get example_document.txt sample01.txt
Nell'esempio sopra, il get
il comando recupera example_document.txt file e lo salva come sample01.txt sul sistema locale.
SFTP consente anche il trasferimento di un'intera directory dal sistema remoto utilizzando il -r
flag, che indica un trasferimento ricorsivo di tutti i file nella directory:
get -r Example_Directory
Aggiungi il -P
segnala a get
comando per trasferire il file o la directory preservando i permessi e i tempi di accesso:
get -Pr Example_Directory
Usa ls
comando per verificare il trasferimento al sistema locale:
ls -l
Trasferisci file locali su un server remoto
Per trasferire file da un sistema locale a un server remoto, usa il put
comando. Il put
Il comando usa la stessa sintassi e le stesse opzioni del get
comando.
put [path to file]
Ad esempio, per trasferire un example01.txt file sul server remoto, utilizzare:
put example01.txt
Per trasferire il file in una directory specifica sul server remoto, aggiungi il percorso della directory alla fine del put
comando.
put example01.txt Example_Directory
Aggiunta di un nuovo nome file alla fine del put
comando cambia il nome del file trasferito sul server remoto.
put example01.txt text_sample.txt
Il trasferimento di un'intera directory richiede il -r
bandiera.
put -r Test_Directory
Aggiungi il -P
segnala al put
comando per preservare i permessi dei file:
put -Pr Test_Directory
Verifica il trasferimento del file utilizzando ls
comando sul sistema remoto:
Manutenzione dei file tramite SFTP
SFTP supporta la manutenzione di base dei file. Ad esempio, utilizzare SFTP per modificare i permessi di file e directory su un sistema remoto.
Il chown
comando cambia la proprietà del file in modo simile al comando chmod:
chown [user ID] [path to file]
A differenza di chmod
comando, chown
accetta solo ID utente e non nomi utente. Per trovare gli UID per il server remoto utilizzando l'interfaccia SFTP è necessario trasferire e accedere a /etc/passwd file:
get /etc/passwd
!less passwd
L'UID di ogni utente si trova nella terza colonna, separata dai due punti:
Il chmod
il comando funziona come nella shell standard:
chmod [permission] [path to file]
Un'altra opzione consiste nel modificare la proprietà del file di gruppo con chgrp
comando:
chgrp [group ID] [path to file]
Come per gli UID, gli ID di gruppo si trovano nella terza colonna di /etc/group file sul server remoto:
get /etc/group
!less group
SFTP consente di impostare una umask locale, che modifica l'autorizzazione predefinita per i file trasferiti al sistema locale.
Ad esempio:
lumask 022
Il comando sopra cambia la umask locale in 022 . Ogni file trasferito dopo aver impostato questa umask ora ha il 644 autorizzazione per impostazione predefinita. Puoi comunque conservare l'autorizzazione originale utilizzando il -p
bandiera.
Un altro modo per modificare i permessi dei file locali consiste nell'usare SFTP per replicare il comportamento dei comandi della shell. A tale scopo, aggiungi un punto esclamativo (! ) prima del nome del comando.
Ad esempio, utilizzando il chmod
comando sul sistema locale:
!chmod [permission] [path to file]