GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment installer et configurer le serveur sftp dans Ubuntu 20.04

FTP

Le File Transfer Protocol est un protocole de communication standard utilisé pour le transfert de fichiers informatiques d'un serveur à un client sur un réseau informatique (y compris Internet). FTP est construit sur une architecture de modèle client-serveur utilisant des connexions de contrôle et de données séparées entre le client et le serveur.
FTP a toujours été populaire pour regarder ou déplacer des fichiers volumineux entre les systèmes. Les fichiers peuvent être ajoutés à un serveur central, puis les utilisateurs qui souhaitent y accéder peuvent y accéder à partir de là.

SSH

SFTP vise à fournir une sécurité renforcée avec un tunneling utilisant Secure Shell 2 (SSH2), un protocole de tunneling sécurisé. Il émule une connexion FTP et fournit un canal compatible avec le pare-feu et crypté pour les transferts de fichiers à l'aide du port TCP 22. nécessitant l'ouverture d'un seul port sur votre pare-feu par rapport aux deux ports qui doivent être ouverts pour les connexions FTP et SSL.

En tant que fonctionnalité supplémentaire, Secure FTP compresse également toutes les données pendant la transmission, ce qui peut accélérer les transferts de fichiers.

Contenu associé

  • Comment travailler avec le client SFTP sous Linux – 10 commandes sftp
  • Comment configurer un serveur SFTP sur le serveur Debian 11
  • Télécharger des fichiers à partir du serveur SFTP à l'aide d'un script python
  • Répertorier, charger et télécharger des fichiers depuis un serveur SFTP à l'aide de golang
  • Comment configurer un serveur SFTP sur le serveur OpenSUSE Leap 15.3
  • Comment configurer un serveur SFTP sur le serveur CentOS 8/RHEL 8

Mise en route avec le serveur SFTP dans Ubuntu 20.04

Ce guide vous guidera tout au long du processus d'installation et de configuration du serveur SFTP dans Ubuntu 20.04. Nous allons suivre ces étapes :

  1. Installer le sftp et ssh Logiciel sous Ubuntu
  2. Création d'un utilisateur et d'un groupe SFTP
  3. Configuration du service SSH
  4. Connexion au serveur à l'aide du terminal - ligne de commande Linux

1. Installation du logiciel ssh dans Ubuntu

Nous avons besoin du logiciel fournissant le ssh et sftp logiciel serveur dans notre Ubuntu

Assurez-vous que votre ordinateur est mis à jour :

sudo apt update
sudo apt upgrade -y

Depuis sftp dépend de ssh , nous devrons installer SSH ou OpenSSH si aucun d'entre eux n'est déjà installé sur votre machine.
Installez le ssh démon :

sudo apt install ssh

Sortie

$ 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. Création d'un utilisateur et d'un groupe SFTP

Nous devons créer un utilisateur et un groupe qui se connecteront au serveur SFTP.

  • Créez un groupe avec le nom que vous voulez. Je vais utiliser sftpgroup1
    sudo addgroup sftpgroup1

Sortie :

# sudo addgroup sftpgroup1
Adding group 'sftpgroup1' (GID 1002) ...
Done.
  • Créez un utilisateur avec le nom que vous voulez en l'ajoutant au groupe que nous avons créé. Je vais utiliser sftpuser1 pour l'utilisateur.
    sudo useradd -m sftpuser1 -g sftpgroup1
  • Ajouter un mot de passe au nouvel utilisateur SFTP
    sudo passwd sftpuser1

Sortie :

# sudo passwd sftpuser1
New password:
Retype new password:
passwd: password updated successfully
  • Accordez au nouvel utilisateur SFTP un accès complet à son nouveau répertoire personnel à l'aide de cette commande :
    sudo chmod 700 /home/sftpuser1/ 

Configuration du service SSH

Vous devez configurer le service ssh pour accepter le trafic sftp. Ajoutez les configurations suivantes au fichier de configuration ssh situé ici /etc/ssh/sshd_config :

Dans votre terminal, utilisez cette commande pour ouvrir le fichier de configuration avec vim :

sudo vim /etc/ssh/sshd_config

Ajoutez maintenant ce contenu au bas du fichier :

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

Les configurations ci-dessus sont destinées à autoriser les utilisateurs du groupe sftpgroup1 (Match group sftpgroup1 ) pour accéder et utiliser leurs répertoires personnels via le SFTP tout en empêchant tout autre accès SSH normal à ces fichiers.

Enregistrez et fermez le fichier de configuration SSHD.

redémarrez le service SSH pour appliquer les modifications précédentes.

sudo systemctl restart ssh

4. Connexion au serveur à l'aide du terminal – ligne de commande Linux

Vous pouvez utiliser le terminal de ligne de commande pour tester votre connexion au SFTP. Cela peut même être fait localement sur le serveur sftp.

Voici le format de la commande de connexion :

sftp [user]@[host]

Connectons-nous à notre serveur. votre nom d'utilisateur et votre mot de passe SFTP seront nécessaires.

sftp [email protected]

Sortie :

$ 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>

Cela vous connectera au serveur. Le répertoire par défaut est le /home dir spécifié dans le ChrootDirectory /home directive dans les configurations de serveur ssh.

Commandes sftp de base

Vérifier la version :

sftp> version
SFTP protocol version 3
sftp>

Afficher le répertoire de travail distant

Si vous devez vérifier le répertoire de travail actuel sur le serveur distant, le pwd la commande est pratique :

sftp> pwd
Remote working directory: /sftpuser1
sftp>

Afficher le répertoire de travail de la machine locale

Pour afficher le répertoire de travail actuel du système local, utilisez lpwd commande.

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

L'utilisateur créé n'aura accès qu'à son répertoire. Passons à ce répertoire avec la commande suivante :

sftp> cd sftpuser1
sftp>

Accédez au répertoire d'accueil de l'utilisateur SFTP et essayez de créer un nouveau répertoire comme suit :

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

Télécharger des fichiers

Le faire en local

Téléchargez des fichiers sur un serveur distant à l'aide de cette syntaxe de commande :

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

Exemple :

$ 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
Le faire depuis le serveur sftp

Utilisez ces commandes :ls pour lister les fichiers, lls pour la liste locale, put pour télécharger des fichiers :

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>

Pour télécharger plusieurs fichiers en une seule fois, nous pouvons utiliser mput commande comme dans l'exemple ci-dessous. Vous pouvez utiliser mput avec une expression régulière comme data[23] pour télécharger data2 , data3 et ignorer data1 . Vous pouvez utiliser n'importe quel caractère générique ou expression régulière avec 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

Télécharger des fichiers

Le faire depuis la machine locale

Pour télécharger un fichier depuis un serveur distant, utilisez la syntaxe de commande ci-dessous :

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

Voici une démonstration du téléchargement d'un fichier en une seule ligne à l'aide de 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
Le faire depuis le serveur SFTP distant

Télécharger un seul fichier depuis le serveur en utilisant get . Exemple de téléchargement de data2

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

Utilisez mget pour télécharger plusieurs fichiers comme dans cet exemple

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>

Créer et supprimer un répertoire

Utilisez les commandes mkdir et rmdir pour créer et supprimer des répertoires

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

Supprimer des fichiers

Utilisez la commande rm pour supprimer des fichiers

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

Renommer des fichiers

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

Vérification de l'utilisation du système de fichiers

Affichez les statistiques du répertoire ou du système de fichiers actuel contenant le "chemin", utilisez la commande df. Nous pouvons utiliser l'indicateur -h pour afficher les statistiques dans un format lisible par l'homme. Notez que les statistiques affichées concernent le système de fichiers respectif du serveur SFTP distant et non le système de fichiers de la machine 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%

Obtenir de l'aide

Pour obtenir de l'aide sur les commandes disponibles et la syntaxe pour SFTP, utilisez '?' ou 'help'.

sftp> ?

Sortie :

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

Reportez-vous à la page de manuel sftp pour en savoir plus.

$ man sftp
Quitter la session SFTP

Enfin, vous pouvez quitter le sftp en utilisant le bye , exit , ou exit :

sftp> exit
$

Conclusion

Dans ce guide, nous avons réussi à configurer un serveur sftp et exploré les opérations de base pouvant être effectuées sur le serveur


Ubuntu
  1. Comment configurer et installer le serveur proxy Squid sur Ubuntu 18.04

  2. Installer le serveur SSH Ubuntu 22.04

  3. Comment installer et configurer le serveur DHCP sur Ubuntu 20.04

  4. Comment installer et configurer Gerbera Media Server dans Ubuntu / Debian

  5. Comment installer et configurer mysql 8 sur Ubuntu 20.04

Comment installer OpenSSH sur Ubuntu 20.04

Comment installer le serveur SSH dans Ubuntu 20.04

Comment installer le serveur SSH sur Ubuntu 18.04 LTS

Comment installer le serveur SSH sur Ubuntu 20.04 LTS

Comment installer le serveur SSH sur Ubuntu 22.04 LTS

Comment installer Apache Server et configurer des hôtes virtuels sur Ubuntu 22.04