Operazioni via SFTP

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

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.sftpsftp

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.putget

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.

Banner per il consenso ai cookie di Real Cookie Banner