Introduzione
SFTP (Safe File Transfer Protocol) fa parte del protocollo SSH progettato per trasferire file in modo sicuro tra sistemi remoti. Consente agli utenti di visualizzare, gestire e modificare i permessi di file e directory su sistemi remoti.
In questo tutorial, esamineremo i comandi che puoi utilizzare con SFTP fornendo spiegazioni, opzioni ed esempi per ciascuno.
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.
Elenco dei comandi e delle opzioni SFTP
SFTP consente agli utenti di trasferire dati tra un server SFTP remoto e un sistema client locale. SFTP utilizza il protocollo di rete SSH per connettere due sistemi che condividono una chiave SSH pubblica.
La connessione al server SFTP apre l'interfaccia della shell SFTP. L'interfaccia della shell SFTP supporta i seguenti comandi:
Comando | Descrizione |
cd [path] | Cambia la directory sul server remoto in [path] . |
lcd [path] | Cambia la directory sul sistema locale in [path] . |
chgrp [group ID] [path] | Cambia la proprietà del gruppo in [group ID] per il file o la cartella che si trova in [path] . |
chmod [mode] [path] | Cambia la proprietà in [mode] per il file o la cartella che si trova in [path] . |
chown [user ID] [path] | Cambia la proprietà dell'utente in [user ID] per il file o la cartella che si trova in [path] . |
help | Visualizza il testo della guida. |
get [remote path] [local path] | Trasferisci un file o una directory da [remote path] sul server remoto a [local path] sul sistema locale. |
lls [options] [path] | Visualizza l'elenco per la directory situata in [path] sul sistema locale. Utilizza ls opzioni di comando. |
ln [old path] [new path] | Crea un collegamento simbolico da [old path] a [new path] sul server remoto. |
lmkdir [path] | Crea una directory in [path] sul sistema locale. |
lpwd | Visualizza la directory locale corrente. |
ls [options] [path] | Visualizza l'elenco per la directory situata in [path] sul server remoto. Utilizza ls opzioni di comando. |
lumask [mask] | Imposta la maschera delle autorizzazioni locali su [mask] . |
mkdir [path] | Crea una directory in [path] sul server remoto. |
put [local path] [remote path] | Trasferisci un file o una directory da [local path] sul sistema locale su [remote path] sul server remoto. |
pwd | Visualizza la directory remota corrente. |
exit | Esci dall'interfaccia SFTP. |
quit | Esci dall'interfaccia SFTP. |
rename [old path] [new path] | Rinomina un file sul server remoto da [old path] a [new path] . |
rmdir [path] | Rimuovi una directory situata in [path] sul server remoto. |
rm [path] | Rimuovi un file che si trova in [path] sul server remoto. |
symlink [old path] [new path] | Crea un collegamento simbolico da [old path] a [new path] sul server remoto. |
version | Visualizza la versione corrente di SFTP |
![command] | Esegui <strong>[command]</strong> nella shell locale. |
! | Sposta temporaneamente nella shell locale. |
? | Visualizza il testo della guida. |
Connessione a SFTP
La connessione a SFTP utilizza la stessa sintassi della connessione a un sistema remoto con SSH:
sftp [username]@[remote hostname or IP address]
Ad esempio, la connessione a un server con phoenixnap nome utente all'indirizzo IP 192.168.100.7 :
sftp [email protected]
Se la connessione riesce, la shell si sposta sull'interfaccia SFTP, indicata da sftp>
al posto del nome utente corrente:
Quando ti connetti a un sistema remoto con SFTP, usa le seguenti opzioni con sftp
comando per cambiarne il comportamento:
Opzione | Descrizione |
-1 | Utilizzare la versione 1 del protocollo SSH durante la connessione. |
-4 | Utilizza solo indirizzi IPv4. |
-6 | Utilizza solo indirizzi IPv6. |
-A | Consente l'inoltro dell'agente di autenticazione SSH al server remoto. |
-a | Tentativo di continuare i trasferimenti di file interrotti. |
-B [buffer size] | Imposta una dimensione del buffer personalizzata (il valore predefinito è 32.768 byte). |
-b [batch file] | Specifica un file batch per avviare sftp comando in modalità batch. |
-C | Utilizza la compressione dei file. |
-c [cipher] | Seleziona un codice da utilizzare durante la crittografia dei dati per il trasferimento. |
-D [SFTP server path] | Connettiti a un server SFTP locale senza utilizzare SSH. |
-F [SSH configuration file] | Specifica un file di configurazione SSH da utilizzare durante la connessione. |
-f | Svuota i file su disco subito dopo il trasferimento. |
-i [private key file] | Seleziona un file che contiene la chiave privata per l'autenticazione con chiave pubblica. |
-J [destination] | Imposta l'inoltro TCP tramite la destinazione fornita. |
-l [kbit/s] | Imposta un limite alla larghezza di banda della connessione in kbit/s. |
-N | Disabilita la modalità silenziosa. |
-o [SSH option] | Aggiungi un'opzione di comando ssh durante la connessione a SFTP. |
-P [port number] | Imposta una porta a cui connettersi. |
-p | Mantieni i permessi dei file e i tempi di accesso durante il trasferimento. |
-q | Abilita la modalità silenziosa. |
-R [number of requests] | Imposta il numero di richieste di trasferimento file simultanee consentite. |
-r | Trasferisci le directory in modo ricorsivo. |
-S [client] | Specifica un client SFTP che desideri utilizzare per la connessione. |
-s [SSH subsystem or SFTP server path] | Seleziona un sottosistema SSH2 o un percorso del server SFTP. |
-v | Mantieni un registro dettagliato della sessione. |
Usa l'exit
comando per terminare la connessione corrente:
exit
Trasferimento di file
Usa il get
e put
comandi per creare una richiesta di trasferimento file in SFTP. Il get
Il comando trasferisce i file da un server remoto al sistema locale, mentre il put
comando fa il contrario.
Il get
comando utilizza la seguente sintassi di base:
get [path to file]
Usando il get
Il comando trasferisce un file dal server remoto alla Home del sistema locale directory. Ad esempio:
get example01.txt
D'altra parte, usando il put
Il comando trasferisce un file dal sistema locale alla Home del server remoto directory:
put example02.txt
Per trasferire il file in una directory diversa, aggiungi il nome della directory alla fine di get
o put
comando:
get [path to file] [path to directory]
put [path to file] [path to directory]
Per modificare il nome del file sul sistema locale, aggiungi il nuovo nome del file alla fine del comando:
get [path to file] [new file name]
put [path to file] [new file name]
Il get
e put
i comandi utilizzano le seguenti opzioni:
Opzione | Descrizione |
-a | Tentativo di riprendere un trasferimento di file. |
-f | Svuota il file su disco subito dopo il trasferimento. |
-p | Preserva i permessi dei file e i tempi di accesso durante il trasferimento. |
-R | Trasferisci un'intera directory in modo ricorsivo. Quando si utilizza questa opzione, definire un percorso per una directory anziché un percorso per un file. |
Modifica delle autorizzazioni dei file
SFTP consente inoltre di modificare i permessi di file e directory sul server remoto. Il chown
il comando cambia la proprietà del file per i singoli utenti:
chown [user ID] [path to file]
A differenza del chown
comando, che richiede un ID utente, il comando chmod funziona come nella shell standard:
chmod [permission] [path to file]
Un'altra opzione è usare il chgrp
comando per modificare la proprietà del gruppo di un file:
chgrp [group ID] [path to file]
SFTP ti consente anche di impostare una umask locale, modificando l'autorizzazione predefinita per tutti i file futuri trasferiti al sistema locale. Usa il lumask
comando per impostare una nuova umask locale:
lumask [permission mask]
Gestione di file e directory
SFTP fornisce opzioni che consentono agli utenti di rivedere e gestire i file sia sul sistema locale che sul server remoto. Il ls
comando ti consente di elencare i file e le directory sul server remoto. Ad esempio:
ls -l
Allo stesso modo, il lls
(ls
locali ) il comando elenca i file e le directory sul sistema locale:
lls -l
Il cd
e lcd
i comandi cambiano la directory di lavoro corrente sul server remoto o sul sistema locale, rispettivamente:
cd [path to directory on the remote server]
lcd [path to directory on the local system]
Usando il comando mkdir crea una directory sul server remoto con il percorso che fornisci:
mkdir [path to the new directory on the remote server]
Ad esempio, creando Directory_esempio nella Home directory:
mkdir Example_Directory
Il mkdir
il comando non ha output, quindi è necessario utilizzare ls
comando per verificare il risultato:
Simile a questo, il lmkdir
comando crea una directory sul sistema locale:
lmkdir [path to the new directory on the local system]
Utilizzando lo stesso esempio:
lmkdir Example_Directory
Il rename
comando cambia il nome di un file o di una directory sul server remoto:
rename [old path] [new path]
Ad esempio, rinominando example01.txt a sampledoc.txt :
rename example01.txt sampledoc.txt
Usando il rm
il comando rimuove un file dal server remoto:
rm [path to file]
Ad esempio, rimuovendo il sampledoc.txt file:
rm sampledoc.txt
Allo stesso modo, il rmdir
il comando rimuove una directory dal server remoto:
rmdir [path to directory]
Ad esempio, rimuovendo Directory_esempio :
rmdir Example_Directory
Il ln
e symlink
i comandi creano un collegamento simbolico a un file oa una directory sul server remoto:
ln [old path] [new path]
symlink [old path] [new path]
Ad esempio, creando un collegamento a example02.txt denominato link_esempio utilizzando il ln
comando:
ln example02.txt example_link
Il pwd
comando mostra la directory di lavoro corrente sul server remoto come output:
pwd
D'altra parte, il lpwd
comando crea un output che mostra la directory di lavoro corrente sul sistema locale:
lpwd
Esecuzione dei comandi della shell locale
SFTP consente di eseguire un comando utilizzando la shell locale aggiungendo un punto esclamativo (! ) prima del comando. Ciò consente agli utenti di eseguire comandi che non fanno parte della shell SFTP standard sul sistema locale.
Ad esempio, SFTP non supporta l'tree
comando in Linux. Utilizzando la shell locale, puoi eseguire questo comando nell'interfaccia SFTP:
!tree
Utilizzando il punto esclamativo (! ) senza un comando sposta temporaneamente l'utente nella shell locale. Per tornare alla shell SFTP, usa exit
comando.
Altri comandi
Utilizzando la help
o ?
comandi visualizza il testo della guida per l'interfaccia SFTP. La guida fornisce un elenco di comandi disponibili nella shell SFTP.
La version
comando visualizza la versione corrente del protocollo SFTP installato:
PDF cheat sheet SFTP
Di seguito puoi trovare un foglio di riferimento di una pagina contenente tutti i comandi e le opzioni SFTP sopra menzionati. Salvalo come file PDF facendo clic sul collegamento sottostante.
SCARICA il Cheat Sheet di SFTP