GNU/Linux >> Linux Esercitazione >  >> Linux

Come utilizzare il comando SFTP per trasferire file

SFTP (SSH File Transfer Protocol) è un protocollo di file sicuro utilizzato per accedere, gestire e trasferire file su un trasporto SSH crittografato.

Rispetto al tradizionale protocollo FTP, 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 sftp di Linux comando.

Prima di iniziare #

Per poter trasferire file tramite SFTP devi avere il permesso di scrittura sul sistema remoto.

Quando si trasferiscono file di grandi dimensioni, si consiglia di eseguire sftp comando all'interno di uno screeno tmuxsession.

La directory da cui esegui sftp comando è la directory di lavoro locale.

Non confondere SFTP con FTPS. Entrambi i protocolli hanno lo stesso scopo. Tuttavia, FTPS sta per FTP Secure ed è un'estensione del protocollo FTP standard con supporto per TLS.

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, usa il sftp comando seguito dal nome utente del server remoto e dall'indirizzo IP o nome di dominio:

sftp remote_username@server_ip_or_hostname

Se ti stai connettendo all'host utilizzando l'autenticazione tramite password, ti verrà chiesto di inserire la password utente.

Una volta connesso, ti verrà presentato il sftp prompt e puoi iniziare a interagire con il server remoto:

Connected to remote_username@server_ip_or_hostname.
sftp>

Se il server SSH remoto non è in ascolto sulla porta predefinita 22, utilizzare il -P opzione per specificare la porta SFTP:

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 di Linux.

Per ottenere un elenco di tutti i comandi SFTP disponibili, digita help o ? .

help

Questo produrrà un lungo elenco di tutti i comandi disponibili, inclusa una breve descrizione di ogni 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 accede al server remoto, la directory di lavoro corrente è la directory home dell'utente remoto. Puoi verificarlo digitando:

pwd
Remote working directory: /home/remote_username

Per elencare i file e le directory, usa ls comando:

ls

Per navigare in un'altra directory, usa il cd comando. Ad esempio, per passare a /tmp directory da digitare:

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:

cd lpwd
Local working directory: /home/local_username

Trasferimento di file con SFTP #

SFTP ti consente di trasferire file tra due macchine in modo sicuro.

Se stai lavorando su una macchina desktop, puoi utilizzare un client SFTP GUI come WinSC o FileZilla per connetterti al server remoto e scaricare o caricare file.

Il sftp Il comando è utile quando si lavora su un server senza GUI e si desidera trasferire file o eseguire altre operazioni sui file remoti.

Download di file con il comando SFTP #

Per scaricare un singolo file dal server remoto, usa get comando:

get filename.zip

L'output dovrebbe essere simile a questo:

Fetching /home/remote_username/filename.zip to filename.zip
/home/remote_username/filename.zip                           100%   24MB   1.8MB/s   00:13

Durante il download di file con sftp , i file vengono scaricati nella directory da cui hai digitato sftp comando.

Se vuoi salvare il file scaricato con un nome diverso, specifica il nuovo nome come secondo argomento:

get filename.zip local_filename.zip

Per scaricare una directory dal sistema remoto, usa il ricorsivo -r opzione:

get -r remote_directory

Se un trasferimento di file non riesce o viene interrotto, puoi riprenderlo utilizzando il reget comando.

La sintassi di reget è la stessa della sintassi di get :

reget filename.zip

Caricamento di file con il comando SFTP #

Per caricare un file dalla macchina locale al server SFTP remoto, usa il put comando:

put filename.zip

L'output dovrebbe essere simile a questo:

Uploading filename.zip to /home/remote_username/filename.zip
filename.zip                          100%   12MB   1.7MB/s   00:06

Se il file che desideri caricare non si trova nella directory di lavoro corrente, utilizza il percorso assoluto del file.

Quando si lavora con put puoi utilizzare le stesse opzioni disponibili con get comando.

Per caricare una directory locale, devi digitare:

put -r locale_directory

Per riprendere un caricamento interrotto:

reput filename.zip

Manipolazioni di file con SFTP #

In genere, per eseguire attività su un server remoto, ti connetti ad esso tramite SSH e fai il tuo lavoro utilizzando il terminale della shell. Tuttavia, in alcune situazioni, l'utente potrebbe 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:

    df
            Size         Used        Avail       (root)    %Capacity
        20616252      1548776     18002580     19067476           7%
  • Crea una nuova directory sul server remoto:

    mkdir directory_name
  • Rinominare un file sul server remoto:

    rename file_name new_file_name
  • Elimina un file sul server remoto:

    rm file_name
  • Elimina una directory sul server remoto:

    rmdir directory_name
  • Modifica i permessi di un file sul sistema remoto:

    chmod 644 file_name
  • Cambia il proprietario di un file sul sistema remoto:

    chown user_id file_name

    Devi fornire l'ID utente al chown e chgrp comandi.

  • Modifica il proprietario del gruppo di un file remoto con:

    chgrp group_id file_name

Una volta terminato il lavoro, chiudi la connessione digitando bye o quit .

Conclusione #

In questo tutorial, ti abbiamo mostrato come usare sftp comando per scaricare e caricare file sul tuo server SFTP remoto.

Potresti anche voler impostare un'autenticazione basata su chiave SSH e connetterti ai tuoi server Linux senza inserire una password. Se ti connetti regolarmente agli stessi sistemi, puoi 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.


Linux
  1. Comando SCP Linux – Come trasferire file SSH da remoto a locale

  2. Come utilizzare Netcat per trasferire file su Linux

  3. Come utilizzare il comando trova di Linux per trovare i file

  4. Come trasferire file in modo sicuro utilizzando il comando SCP in Linux

  5. Come trasferire file in modo sicuro utilizzando sftp (esempi inclusi)

Come utilizzare il comando FTP di Linux per trasferire file

Come utilizzare il comando SCP per trasferire file in modo sicuro

Come utilizzare il comando SCP per trasferire file

Come usare il comando PS

Come usare il comando TOP

Procedura:Comandi SFTP – Trasferisci file in modo sicuro su un server remoto