GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come installare e configurare il server sftp in Ubuntu 20.04

FTP

Il File Transfer Protocol è un protocollo di comunicazione standard utilizzato per il trasferimento di file di computer da un server a un client su una rete di computer (incluso Internet). FTP è basato su un'architettura modello client-server che utilizza controlli separati e connessioni dati tra il client e il server.
FTP è sempre stato popolare per fissare o spostare file di grandi dimensioni tra i sistemi. I file possono essere aggiunti a un server centrale, quindi gli utenti che desiderano accedervi possono accedervi da lì.

SSH

SFTP mira a fornire una maggiore sicurezza con il tunneling utilizzando Secure Shell 2 (SSH2), un protocollo di tunneling sicuro. Emula una connessione FTP e fornisce un canale crittografato e compatibile con il firewall per i trasferimenti di file utilizzando la porta TCP 22.
SSH offre una maggiore sicurezza poiché l'intera sessione di trasferimento file, inclusi tutti i comandi di controllo della sessione, è completamente crittografata in ogni momento, mentre solo che richiedono l'apertura di una singola porta sul firewall rispetto alle due porte che devono essere aperte per le connessioni FTP e SSL.

Come funzionalità aggiuntiva, Secure FTP comprime anche tutti i dati durante la trasmissione, il che può comportare trasferimenti di file più rapidi.

Contenuti correlati

  • Come lavorare con il client SFTP in Linux – 10 comandi sftp
  • Come configurare un server SFTP su Debian 11 Server
  • Scarica file dal server SFTP utilizzando uno script python
  • Elenca, carica e scarica file da un server SFTP utilizzando golang
  • Come configurare un server SFTP su OpenSUSE Leap 15.3 Server
  • Come configurare un server SFTP su CentOS 8 /RHEL 8 Server

Rendere operativo con il server SFTP in Ubuntu 20.04

Questa guida ti guiderà attraverso il processo di installazione e configurazione del server SFTP in Ubuntu 20.04. Seguiremo questi passaggi:

  1. Installazione di sftp e ssh Software in Ubuntu
  2. Creazione di utenti e gruppi SFTP
  3. Configurazione del servizio SSH
  4. Connessione al server tramite terminale – riga di comando Linux

1. Installazione del software ssh in Ubuntu

Abbiamo bisogno del software che fornisce ssh e sftp software server nel nostro Ubuntu

Assicurati che la tua macchina sia aggiornata:

sudo apt update
sudo apt upgrade -y

Da sftp dipende da ssh , dovremo installare SSH o OpenSSH se nessuno di questi è già installato nel tuo computer.
Installa ssh demone:

sudo apt install ssh

Uscita

$ sudo apt install ssh
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
  libllvm11 libxdamage1
Use 'sudo apt autoremove' to remove them.
The following NEW packages will be installed:
  ssh
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 5,084 B of archives.
After this operation, 120 kB of additional disk space will be used.
Get:1 http://ports.ubuntu.com/ubuntu-ports focal-security/main arm64 ssh all 1:8.2p1-4ubuntu0.2 [5,084 B]
Fetched 5,084 B in 0s (26.8 kB/s)
Selecting previously unselected package ssh.
(Reading database ... 104454 files and directories currently installed.)
Preparing to unpack .../ssh_1%3a8.2p1-4ubuntu0.2_all.deb ...
Unpacking ssh (1:8.2p1-4ubuntu0.2) ...
Setting up ssh (1:8.2p1-4ubuntu0.2) ...

2. Creazione di utenti e gruppi SFTP

Dobbiamo creare un utente e un gruppo che accederà al server SFTP.

  • Crea un gruppo con il nome che desideri. Userò sftpgroup1
    sudo addgroup sftpgroup1

Uscita:

# sudo addgroup sftpgroup1
Adding group 'sftpgroup1' (GID 1002) ...
Done.
  • Crea un utente con il nome che desideri aggiungendolo al gruppo che abbiamo creato. Userò sftpuser1 per l'utente.
    sudo useradd -m sftpuser1 -g sftpgroup1
  • Aggiungi una password al nuovo utente SFTP
    sudo passwd sftpuser1

Uscita:

# sudo passwd sftpuser1
New password:
Retype new password:
passwd: password updated successfully
  • Concedi al nuovo utente SFTP l'accesso completo alla loro nuova directory home usando questo comando:
    sudo chmod 700 /home/sftpuser1/ 

Configurazione del servizio SSH

È necessario configurare il servizio ssh per accettare il traffico sftp. Aggiungi le seguenti configurazioni al file di configurazione ssh che si trova qui /etc/ssh/sshd_config :

Nel tuo terminale, usa questo comando per aprire il file di configurazione con vim:

sudo vim /etc/ssh/sshd_config

Ora aggiungi questo contenuto in fondo al file:

Match group sftpgroup1
ChrootDirectory /home
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp

Le configurazioni di cui sopra hanno lo scopo di consentire agli utenti nel gruppo sftpgroup1 (Match group sftpgroup1 ) per accedere e utilizzare le loro home directory tramite SFTP impedendo qualsiasi altro normale accesso SSH a quei file.

Salva e chiudi il file di configurazione SSHD.

riavvia il servizio SSH per applicare le modifiche precedenti.

sudo systemctl restart ssh

4. Connessione al server utilizzando il terminale – riga di comando Linux

Puoi utilizzare il terminale della riga di comando per testare il tuo accesso all'SFTP. Questo può essere fatto anche localmente nel server sftp.

Questo è il formato del comando di accesso:

sftp [user]@[host]

Connettiamoci al nostro server. saranno necessari il tuo nome utente e password SFTP.

sftp [email protected]

Uscita:

$ sftp [email protected]
The authenticity of host '127.0.0.1 (127.0.0.1)' can't be established.
ECDSA key fingerprint is SHA256:99KvuL95zO2CQbC8X0Re/Q+cYrJgqQgzpf1leemnjmY.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '127.0.0.1' (ECDSA) to the list of known hosts.
[email protected]'s password:
Connected to 127.0.0.1.
sftp>

Questo ti registrerà nel server. La directory predefinita è /home dir specificata in ChrootDirectory /home direttiva nelle configurazioni del server ssh.

Comandi sftp di base

Verifica versione:

sftp> version
SFTP protocol version 3
sftp>

Mostra directory di lavoro remota

Se hai bisogno di controllare la directory di lavoro corrente sul server remoto, il pwd il comando è utile:

sftp> pwd
Remote working directory: /sftpuser1
sftp>

Mostra la directory di lavoro della macchina locale

Per mostrare l'attuale directory di lavoro del sistema locale, usa lpwd comando.

sftp> lpwd
Local working directory: /home/ubuntu
sftp>

L'utente creato avrà accesso solo alla sua directory. Passiamo a quella directory con il seguente comando:

sftp> cd sftpuser1
sftp>

Passa alla directory home dell'utente SFTP e prova a creare una nuova directory come segue:

sftp> ls
sftpuser1  ubuntu
sftp> cd sftpuser1
sftp> ls
sftp> mkdir datadir
sftp> ls
datadir

Carica file

Fallo da locale

Carica i file su un server remoto usando questa sintassi dei comandi:

$ sftp {user}@{host}:{remote-path} <<< $'put {local-path}'

Esempio:

$ sftp [email protected]:/sftpuser1/ <<< $'put ./citizix.txt'
[email protected]'s password:
Connected to 127.0.0.1.
Changing to: /sftpuser1/
sftp> put ./citizix.txt
Uploading ./citizix.txt to /sftpuser1/citizix.txt
./citizix.txt
Fallo dal server sftp

Usa questi comandi:ls per elencare i file, lls per l'elenco locale, put per caricare i file:

sftp>
sftp> pwd
Remote working directory: /sftpuser1/datadir
sftp> ls
sftp> lls
citizix.txt  snap  tmp
sftp> put citizix.txt
Uploading citizix.txt to /sftpuser1/datadir/citizix.txt
citizix.txt                                                            100%   32    25.8KB/s   00:00
sftp> ls
citizix.txt
sftp>

Per caricare più file in una volta sola, possiamo utilizzare mput comando come nell'esempio seguente. Puoi usare mput con espressioni regolari come data[23] per caricare data2 , data3 e ignora data1 . Puoi usare qualsiasi carattere jolly o espressione regolare con mput .

sftp>
sftp> pwd
Remote working directory: /sftpuser1/data
sftp> ls
sftp> lls
data1  data2  data3
sftp> mput data[23]
Uploading data2 to /sftpuser1/data/data2
data2                                                                  100%    0     0.0KB/s   00:00
Uploading data3 to /sftpuser1/data/data3
data3                                                                  100%    0     0.0KB/s   00:00
sftp> ls
data2  data3

Download dei file

Fallo dalla macchina locale

Per scaricare un file da un server remoto, usa la seguente sintassi dei comandi:

$ sftp {user}@{remote-host}:{remote-file-name} {local-file-name}

Ecco una demo del download di un file in una riga utilizzando sftp:

# sftp [email protected]:/sftpuser1/citizix.txt .
[email protected]'s password:
Connected to 127.0.0.1.
Fetching /sftpuser1/citizix.txt to ./citizix.txt
/sftpuser1/citizix.txt                                                 100%   32    26.7KB/s   00:00
Fallo dal server sftp remoto

Scarica un singolo file dal server usando get . Esempio di download di data2

sftp>
sftp> ls
data2  data3
sftp> lls
sftp> get data2
Fetching /sftpuser1/data/data2 to data2
sftp> lls
data2
sftp>

Usa mget per scaricare più file come in questo esempio

sftp>
sftp> ls
data2  data3
sftp> lls
sftp> mget data*
Fetching /sftpuser1/data/data2 to data2
Fetching /sftpuser1/data/data3 to data3
sftp> lls
data2  data3
sftp>

Creazione ed eliminazione di directory

Usa i comandi mkdir e rmdir per creare ed eliminare directory

sftp>
sftp> ls
sftp> mkdir data
sftp> ls
data
sftp> rmdir data
sftp>

Rimozione dei file

Usa il comando rm per eliminare i file

sftp> rm data*
Removing /sftpuser1/data/data2
Removing /sftpuser1/data/data3
sftp>

Rinominare i file

sftp>
sftp> ls
data3
sftp> rename data3 data_original
sftp> ls
data_original
sftp>

Verifica dell'utilizzo del filesystem

Visualizza le statistiche per la directory o il filesystem corrente contenente 'percorso', usa il comando df. Possiamo usare -h flag per mostrare le statistiche in un formato leggibile dall'uomo. Tieni presente che le statistiche mostrate si riferiscono al rispettivo filesystem del server SFTP remoto e non al filesystem della macchina locale.

sftp> df
        Size         Used        Avail       (root)    %Capacity
    29540600      5917856     22103188     23622744          20%
sftp> df -h
    Size     Used    Avail   (root)    %Capacity
  28.2GB    5.6GB   21.1GB   22.5GB          20%

Ricevere aiuto

Per ottenere aiuto sui comandi disponibili e sulla sintassi per SFTP, usa '?' o 'help'.

sftp> ?

Uscita:

sftp> ?
Available commands:
bye                                Quit sftp
cd path                            Change remote directory to 'path'
chgrp [-h] grp path                Change group of file 'path' to 'grp'
chmod [-h] mode path               Change permissions of file 'path' to 'mode'
chown [-h] own path                Change owner of file 'path' to 'own'
df [-hi] [path]                    Display statistics for current directory or
                                   filesystem containing 'path'
exit                               Quit sftp
get [-afpR] remote [local]         Download file
help                               Display this help text
lcd path                           Change local directory to 'path'
lls [ls-options [path]]            Display local directory listing
lmkdir path                        Create local directory
ln [-s] oldpath newpath            Link remote file (-s for symlink)
lpwd                               Print local working directory
ls [-1afhlnrSt] [path]             Display remote directory listing
lumask umask                       Set local umask to 'umask'
mkdir path                         Create remote directory
progress                           Toggle display of progress meter
put [-afpR] local [remote]         Upload file
pwd                                Display remote working directory
quit                               Quit sftp
reget [-fpR] remote [local]        Resume download file
rename oldpath newpath             Rename remote file
reput [-fpR] local [remote]        Resume upload file
rm path                            Delete remote file
rmdir path                         Remove remote directory
symlink oldpath newpath            Symlink remote file
version                            Show SFTP version
!command                           Execute 'command' in local shell
!                                  Escape to local shell
?                                  Synonym for help

Fare riferimento alla pagina man di sftp per ulteriori letture.

$ man sftp
Esci dalla sessione SFTP

Infine, puoi uscire da sftp usando il bye , exit o quit :

sftp> exit
$

Conclusione

In questa guida siamo riusciti a configurare un server sftp e ad esplorare le operazioni di base che possono essere eseguite sul server


Ubuntu
  1. Come configurare e installare il server proxy Squid su Ubuntu 18.04

  2. Installa il server SSH Ubuntu 22.04

  3. Come installare e configurare il server DHCP su Ubuntu 20.04

  4. Come installare e configurare Gerbera Media Server in Ubuntu/Debian

  5. Come installare e configurare mysql 8 su Ubuntu 20.04

Come installare OpenSSH su Ubuntu 20.04

Come installare il server SSH in Ubuntu 20.04

Come installare il server SSH su Ubuntu 18.04 LTS

Come installare il server SSH su Ubuntu 20.04 LTS

Come installare il server SSH su Ubuntu 22.04 LTS

Come installare il server Apache e configurare host virtuali su Ubuntu 22.04