SFTP (SSH File Transfer Protocol) è un protocollo di file sicuro che viene utilizzato per accedere, gestire e trasferire file su un trasporto SSH crittografato.
Rispetto al protocollo FTP tradizionale, SFTP offre tutte le funzionalità di FTP, ma è più sicuro e più facile da configurare.
A differenza di SCP , che supporta solo i trasferimenti di file, SFTP consente di eseguire una serie di operazioni su file remoti e riprendere i trasferimenti di file.
In questo tutorial, ti mostreremo come usare il comando Linux.sftp
Prima di iniziare
Per poter trasferire file tramite SFTP è necessario disporre del permesso di scrittura sul sistema remoto.
Quando si trasferiscono file di grandi dimensioni, si consiglia di eseguire il comando all’interno di una sessione di schermate o tmux.sftp
La directory da cui si esegue il comando è la directory di lavoro locale.sftp
Stabilire una connessione SFTP
SFTP funziona su un modello client-server. È un sottosistema di SSH e supporta tutti i meccanismi di autenticazione SSH.
Per aprire una connessione SFTP a un sistema remoto, utilizzare il comando seguito dal nome utente del server remoto e dall’indirizzo IP o dal nome di dominio:sftp
sftp remote_username@server_ip_or_hostname
Se ci si connette all’host utilizzando l’autenticazione tramite password, verrà richiesto di immettere la password utente.
Una volta connesso, ti verrà presentato il prompt e potrai iniziare a interagire con il server remoto:sftp
Connected to remote_username@server_ip_or_hostname.
sftp>
Se il server SSH remoto non è in ascolto sulla porta predefinita 22, utilizzare l’opzione per specificare la porta SFTP:-P
$ sftp -P custom_port remote_username@server_ip_or_hostname
Comandi SFTP
La maggior parte dei comandi SFTP sono simili o identici ai comandi della shell Linux.
Per ottenere un elenco di tutti i comandi SFTP disponibili, digitare , oppure .help
?
sftp> help
Questo produrrà un lungo elenco di tutti i comandi disponibili, inclusa una breve descrizione di ciascun comando:
Available commands:
bye Quit sftp
cd path Change remote directory to 'path'
...
...
version Show SFTP version
!command Execute 'command' in local shell
! Escape to local shell
? Synonym for help
Navigazione con SFTP
Quando si è connessi al server remoto, la directory di lavoro corrente è la home directory dell’utente remoto. Puoi verificarlo digitando:
sftp> pwd
Output: Remote working directory: /home/remote_username
Per elencare i file e le directory, utilizzare il comando:
sftp> ls
Per passare a un’altra directory, utilizzare il comando. Ad esempio, per passare alla directory è necessario digitare:
sftp> cd /tmp
I comandi precedenti vengono utilizzati per navigare e lavorare sulla posizione remota.
La shell SFTP fornisce anche comandi per la navigazione locale, le informazioni e la gestione dei file. I comandi locali sono preceduti dalla lettera .l
Ad esempio, per stampare la directory di lavoro locale, digitare:
sftp> cd lpwd
Local working directory: /home/local_username
Trasferimento di file con SFTP
SFTP consente di trasferire file tra due macchine in modo sicuro.
Se si lavora su una macchina desktop, è possibile utilizzare un client SFTP GUI come WinSCP o FileZilla per connettersi al server remoto e scaricare o caricare file.
Il comando è utile quando si lavora su un server senza GUI e si desidera trasferire file o eseguire altre operazioni sui file remoti.sftp
Download di file con il comando SFTP
Per scaricare un singolo file dal server remoto, utilizzare il comando:get
sftp> get filename.zip
L’output dovrebbe essere simile al seguente:
Fetching /home/remote_username/filename.zip to filename.zip /home/remote_username/filename.zip 100% 24MB 1.8MB/s 00:13
Quando si scaricano file con , i file vengono scaricati nella directory da cui è stato digitato il comando.sftp
sftp
Se si desidera salvare il file scaricato con un nome diverso, specificare il nuovo nome come secondo argomento:
sftp> get filename.zip local_filename.zip
Per scaricare una directory dal sistema remoto, utilizzare l’opzione ricorsiva:-r
sftp> get -r remote_directory
Se un trasferimento di file non riesce o viene interrotto, è possibile riprenderlo utilizzando il comando.reget
La sintassi di è uguale alla sintassi di :reget
get
Caricamento di file con il comando SFTP
Per caricare un file dal computer locale al server SFTP remoto, utilizzare il comando:put
sftp> put filename.zip
L’output dovrebbe essere simile al seguente:
Uploading filename.zip to /home/remote_username/filename.zip filename.zip 100% 12MB 1.7MB/s 00:06
Se il file che desiderate caricare non si trova nella directory di lavoro corrente, utilizzate il percorso assoluto del file.
Quando si lavora con è possibile utilizzare le stesse opzioni disponibili con il comando.put
get
Per caricare una directory locale, digitare:
sftp> put -r locale_directory
Per riprendere un caricamento interrotto:
sftp> reput filename.zip
Manipolazioni di file con SFTP
In genere, per eseguire attività su un server remoto, ci si connette ad esso tramite SSH e si svolge il proprio lavoro utilizzando il terminale shell. Tuttavia, in alcune situazioni, l’utente può avere solo accesso SFTP al server remoto.
SFTP consente di eseguire alcuni comandi di base per la manipolazione dei file. Di seguito sono riportati alcuni esempi di come utilizzare la shell SFTP:
Ottieni informazioni sull’utilizzo del disco del sistema remoto:
sftp> df
Size Used Avail (root) %Capacity 20616252 1548776 18002580 19067476 7%
Creare una nuova directory sul server remoto:
sftp> mkdir directory_name
Rinominare un file sul server remoto:
sftp> rename file_name new_file_name
Eliminare un file sul server remoto:
sftp> rm file_name
Eliminare una directory sul server remoto:
sftp> rmdir directory_name
Modificare le autorizzazioni di un file sul sistema remoto:
sftp> chmod 644 file_name
Modificare il proprietario di un file sul sistema remoto:
sftp> chown user_id file_name
È necessario fornire l’ID utente ai comandi chown
e chgrp
.
Modificare il proprietario del gruppo di un file remoto con:
sftp> chgrp group_id file_name
Al termine del lavoro, chiudere la connessione digitando o .bye
quit
Conclusione
In questo tutorial, ti abbiamo mostrato come utilizzare il comando per scaricare e caricare file sul tuo server SFTP remoto.sftp
Potresti anche voler impostare un’autenticazione basata su chiave SSH e connetterti ai tuoi server Linux senza inserire una password. Se ci si connette regolarmente agli stessi sistemi, è possibile semplificare il flusso di lavoro definendo tutte le connessioni nel file di configurazione SSH.
Sentiti libero di lasciare un commento se hai domande o feedback.