Le protocole SFTP (Simple File Transfer Protocol) est un protocole utilisé pour transférer des fichiers entre deux appareils via Internet. Il fonctionne sur le protocole de transfert de fichiers (FTP) et Secure Shell (SSH).
Pendant que le protocole transfère des fichiers, il protège également contre le reniflage de mots de passe, les attaques de l'homme du milieu et l'exposition des données sensibles. Il préserve également l'intégrité des données à l'aide de fonctions de cryptage et de hachage cryptographique. Il authentifie également le client et le serveur avant de donner l'accès. Cela permet un transfert sécurisé des fichiers.
Chez LinuxAPT, nous verrons comment vous pouvez facilement échanger des fichiers entre des machines locales et distantes en utilisant ce protocole de transfert de fichiers super pratique.
Ici, nous utiliserons Linux Mint Cinamon 20.02 comme machine locale et Ubuntu 20.04 LTS comme machine distante.
Dans la première partie, vous verrez comment transférer un fichier d'une machine distante vers une machine locale. Dans l'autre partie, vous verrez comment transférer un fichier de votre machine locale vers une machine distante.
Pour voir comment vous pouvez configurer un serveur ProFTPD sur Linux Mint 20, visitez :https://linuxapt.com/blog/1032-install-proftpd-on-linux-mint-20
un. Étapes pour transférer un fichier d'une machine distante vers une machine locale
1. SSH vers la machine distante
Pour commencer, établissez une connexion SSH à votre machine distante. Pour ce faire, devenez d'abord un superutilisateur à l'aide de la commande suivante :
$ sudo -i
Maintenant que vous êtes devenu un superutilisateur, connectez-vous en ssh à la machine distante (192.168.10.23) avec laquelle vous souhaitez communiquer pour obtenir le fichier.
$ ssh [email protected]
2. Localisez le fichier à transférer
Maintenant, localisez le fichier que vous souhaitez copier. Dans ce tutoriel, nous allons créer un nouveau fichier pour le transférer sur ma machine locale.
Pour cela, je vais aller dans le répertoire /etc en exécutant la commande ci-dessous :
$ cd /etc
Avec l'aide de la commande touch, je vais créer un nouveau fichier avec le nom "transfer.txt":
$ touch transfer.txt
3. Établissez une connexion SFTP avec la machine distante
Maintenant, nous allons nous connecter à la machine distante en utilisant sftp :
$ sftp [email protected]
Si vous voyez sftp écrit comme ceci :
sftp> pwd
Remote working directory: /home
Cela signifie que vous êtes en mode sftp. Désormais, les machines locales et distantes peuvent échanger des fichiers en utilisant ce protocole.
4. Vérifiez avec quels répertoires sftp interagit
Avant de procéder au transfert de fichiers, naviguons un peu pour comprendre avec quels répertoires sftp interagit. Exécutez la commande ci-dessous pour connaître votre répertoire de travail actuel :
$ pwd
Pour voir le répertoire de travail actuel de la machine locale, nous utiliserons :
lpwd
Nous pouvons également changer le répertoire avec lequel nous voulons interagir. Il est inclus dans la deuxième partie de ce guide.
5. Transférez le fichier
Accédez au répertoire /etc où nous avons créé le fichier transfer.txt :
$ cd /etc
Pour envoyer un fichier de la machine distante vers la machine locale, nous utilisons la commande get suivie du nom du fichier :
$ get transfer.txt
Fetching /etc/transfer.txt to transfer.txt
Accédez maintenant au répertoire racine de votre système local avec la commande suivante :
$ cd ~
Utilisez ls pour voir tous les fichiers du répertoire :
$ ls
Vous verrez maintenant que le fichier transfer.txt est maintenant dans notre machine locale.
Après avoir fermé la session sftp, vous pouvez transférer le fichier de votre répertoire racine vers n'importe quel autre dossier sur votre machine.
b. Transférer un fichier d'une machine locale vers une machine distante
Nous avons un autre fichier test.txt sur notre machine locale dans le chemin de répertoire suivant :
$ /home/linuxAPT/Downloads/folder
De là, nous le transférerons sur notre machine distante.
1. Connectez-vous à la machine distante à l'aide de SFTP :
$ sftp [email protected]
2. Changez le répertoire local avec lequel sftp interagit
Le répertoire de travail local actuel est :
$ lpwd
Local working directory: /root
Comme indiqué précédemment, nous pouvons modifier le répertoire local avec lequel nous voulons que sftp interagisse. Pour cela, utilisez la commande lcd :
$ lcd /home/linuxAPT/Downloads/folder
Avant cela, sftp interagissait avec le répertoire racine de la machine locale. Maintenant, il interagira avec le répertoire /home/linuxAPT/Downloads/folder. Vous pouvez le confirmer avec la commande suivante :
$ lpwd
working directory: /home/linuxAPT/Downloads/folder
4. Transférez le fichier
Ensuite, nous utilisons la commande put pour transférer le fichier de la machine locale vers la machine distante :
$ put test.txt
uploading test.txt to /home
Maintenant, exécutez la commande ls pour voir si le fichier a été transféré avec succès dans le répertoire /home de la machine distante :
$ ls
Maintenant, le fichier que nous avons transféré est ici sur la machine distante.
Vous pouvez maintenant mettre fin à la session avec une simple commande bye :
$ bye