Simple File Transfer Protocol (SFTP) è un protocollo utilizzato per trasferire file tra due dispositivi su Internet. Funziona su File Transfer Protocol (FTP) e Secure Shell (SSH).
Mentre il protocollo trasferisce i file, protegge anche dallo sniffing delle password, dagli attacchi man-in-the-middle e dall'esposizione di dati sensibili. Preserva inoltre l'integrità dei dati con l'aiuto della crittografia e delle funzioni di hash crittografico. Autentica inoltre sia il client che il server prima di concedere l'accesso. Ciò consente il trasferimento sicuro dei file.
Qui a LinuxAPT, esamineremo come puoi facilmente scambiare file tra macchine locali e remote usando questo protocollo di trasferimento file super pratico.
Qui useremo Linux Mint Cinamon 20.02 come macchina locale e Ubuntu 20.04 LTS come macchina remota.
Nella prima parte vedrai come trasferire un file da una macchina remota a una macchina locale. Nell'altra parte, vedrai come trasferire un file dal tuo computer locale a un computer remoto.
Per vedere come configurare un server ProFTPD su Linux Mint 20, visitare:https://linuxapt.com/blog/1032-install-proftpd-on-linux-mint-20
a. Passaggi per trasferire file da una macchina remota a una macchina locale
1. SSH su macchina remota
Per iniziare, crea una connessione SSH al tuo computer remoto. Per farlo, prima diventa un superutente usando il seguente comando:
$ sudo -i
Ora che sei diventato un superutente, ssh sulla macchina remota (192.168.10.23) con cui vuoi comunicare per ottenere il file.
$ ssh user@192.168.10.23
2. Individua il file da trasferire
Ora individua il file che desideri copiare. In questo tutorial creeremo un nuovo file per trasferirlo sul mio computer locale.
Per farlo, andrò nella directory /etc eseguendo il comando seguente:
$ cd /etc
Con l'aiuto del comando touch creerò un nuovo file con il nome "transfer.txt":
$ touch transfer.txt
3. Stabilire una connessione SFTP con la macchina remota
Ora ci collegheremo alla macchina remota usando sftp:
$ sftp user@192.168.10.23
Se vedi sftp scritto in questo modo:
sftp> pwd
Remote working directory: /home
Ciò significa che sei in modalità sftp. Ora le macchine locali e remote possono scambiare file usando questo protocollo.
4. Controlla con quali directory sftp interagisce
Prima di procedere al trasferimento dei file, navighiamo un po' per capire con quali directory sftp interagisce. Esegui il comando seguente per conoscere la tua attuale directory di lavoro:
$ pwd
Per vedere la directory di lavoro attuale della macchina locale, useremo:
lpwd
Possiamo anche cambiare la directory con cui vogliamo interagire. È incluso nella seconda parte di questa guida.
5. Trasferisci il file
Passare alla directory /etc dove abbiamo creato il file transfer.txt:
$ cd /etc
Per inviare un file dalla macchina remota alla macchina locale, utilizziamo il comando get seguito dal nome del file:
$ get transfer.txt
Fetching /etc/transfer.txt to transfer.txt
Ora vai alla directory principale del tuo sistema locale con il seguente comando:
$ cd ~
Usa ls per vedere tutti i file nella directory:
$ ls
Ora vedrai che il file transfer.txt è ora nella nostra macchina locale.
Dopo aver chiuso la sessione sftp, puoi trasferire il file dalla tua directory principale a qualsiasi altra cartella sul tuo computer.
b. Trasferisci file da una macchina locale a una macchina remota
Abbiamo un altro file test.txt sul nostro computer locale nel seguente percorso di directory:
$ /home/linuxAPT/Downloads/folder
Da qui lo trasferiremo sulla nostra macchina remota.
1. Collegarsi alla macchina remota tramite SFTP:
$ sftp user@192.168.10.23
2. Modificare la directory locale con cui sftp interagisce
La directory di lavoro attuale locale è:
$ lpwd
Local working directory: /root
Come affermato in precedenza, possiamo cambiare la directory locale con cui vogliamo che sftp interagisca. Per farlo, usa il comando lcd:
$ lcd /home/linuxAPT/Downloads/folder
Prima di questo, sftp interagiva con la directory principale della macchina locale. Ora interagirà con la directory /home/linuxAPT/Downloads/folder. Puoi confermarlo con il seguente comando:
$ lpwd
working directory: /home/linuxAPT/Downloads/folder
4. Trasferisci il file
Successivamente, utilizziamo il comando put per trasferire il file dalla macchina locale alla macchina remota:
$ put test.txt
uploading test.txt to /home
Ora, esegui il comando ls per vedere se il file è stato trasferito con successo nella directory /home della macchina remota:
$ ls
Ora il file che abbiamo trasferito è qui nella macchina remota.
Ora puoi terminare la sessione con un semplice comando di arrivederci:
$ bye