Comment transférer des fichiers en toute sécurité sur Linux avec sftp
Ce guide explorera comment utiliser sftp (SSH File Transfer Protocol), un programme en ligne de commande pour transférer en toute sécurité des fichiers entre deux ordinateurs Linux sur un réseau.
Qu'est-ce que SFTP ?
Avant de définir SFTP, il est important de prendre du recul et de comprendre FTP (File Transfer Protocol), le prédécesseur de SFTP.
FTP est un protocole de communication réseau utilisé pour transférer des fichiers entre deux ordinateurs sur un réseau, généralement entre un serveur et un client.
SFTP est une version plus sécurisée de FTP. Il maintient la sécurité en cryptant les données échangées entre deux ordinateurs en utilisant le protocole SSH (Secure Shell). FTP, quant à lui, transmet les données sous forme de texte brut sur un réseau.
SFTP peut également vous aider, vous et votre organisation, à respecter certaines réglementations de conformité telles que GDPR ou CCPA, qui exigent que les données confidentielles soient transférées de la manière la plus sécurisée possible.
Accéder à un PC distant
Linux vous permet principalement de transférer des fichiers avec SFTP via le programme sftp . Sftp est un logiciel de ligne de commande robuste qui vous permet de transférer des fichiers via SSH de manière sécurisée et interactive.
Vous pouvez vous connecter à un serveur distant via sftp à l'aide de la commande suivante. N'oubliez pas de remplacer les espaces réservés " username " et " ip-address-of-remote-pc " par le bon nom d'utilisateur et l'adresse IP du serveur en conséquence.
sftp username@ip-address-of-remote-pc
Entrez le mot de passe du serveur si vous y êtes invité. Si le terminal vous accueille avec le statut Connecté , cela signifie que vous avez réussi à établir une connexion. Le curseur clignotant indique simplement que sftp est en mode interactif.
Remarque : si vous n'avez pas de serveur distant avec lequel interagir, vous pouvez essayer sftp localement en exécutant la commande suivante :
sftp 127.0.0.1
Commandes sftp interactives
Une fois que vous êtes en mode interactif, il existe plusieurs commandes que vous pouvez utiliser pour interagir avec le PC distant. Certaines des commandes les plus importantes sont décrites ci-dessous. Notez que, contrairement à la plupart des commandes Linux, les commandes sftp ne sont pas sensibles à la casse.
Liste des fichiers sur un serveur distant
L'une des tâches les plus importantes consiste à répertorier les fichiers dans un répertoire afin que vous ayez une idée de ce que vous souhaitez transférer. Vous pouvez également obtenir des informations sur les fichiers et les dossiers du PC distant, y compris la taille et les autorisations des fichiers stockés.
Pour lister les fichiers sur votre PC distant, vous pouvez utiliser la commande suivante :
ls
Vous pouvez utiliser la plupart des indicateurs de commande ls tels que -a , -l , etc. et ils fonctionneront très bien.
Pour lister les fichiers sur votre PC de travail local, vous pouvez utiliser la commande suivante :
lls
Liste du répertoire de travail actuel
Vous pouvez également afficher le chemin du répertoire de travail actuel sur le PC distant avec pwd . La commande pwd signifie Present Working Directory .
pwd
Pour lister le répertoire de travail actuel sur votre PC local :
lpwd
Utilisez le raccourci clavier Ctrl + L pour effacer la sortie du terminal interactif.
Téléchargement de fichiers sur un serveur
Utilisez la commande put pour transférer des fichiers de votre PC local vers un serveur distant. Par exemple, pour transférer une image ISO Linux Manjaro depuis votre dossier de départ, utilisez la commande ci-dessous. Vous pouvez utiliser l'indicateur -R pour copier un répertoire de manière récursive.
put manjaro-xfce-21.0.7-minimal-210614-linux54.iso
La sortie sera similaire à celle illustrée ci-dessous. Sftp affichera la progression du transfert de fichiers en temps réel.
De plus, étant donné que le chemin du fichier vers le serveur distant n'a pas été spécifié, sftp placera le fichier dans un chemin similaire à celui du PC local.
Si vous souhaitez copier plusieurs fichiers, utilisez plutôt la commande mput . Par exemple, pour copier tous les fichiers de feuilles de calcul Excel (XLS) dans un répertoire :
mput *.xls
Pour interrompre ou arrêter le transfert d'un fichier vers le serveur, vous pouvez utiliser le raccourci clavier Ctrl + C .
Téléchargement de fichiers à partir d'un serveur
Utilisez la commande get pour télécharger des fichiers du serveur sur votre PC local. Par exemple, pour copier un fichier HTML nommé index.html depuis le serveur, exécutez simplement la commande suivante :
get index.html
Pour obtenir plusieurs fichiers du serveur, utilisez la commande mget . Par exemple, pour copier tous les fichiers HTML du répertoire de travail actuel du serveur vers votre système local :
mget *.html
Modification des autorisations de fichier
Vous pouvez également modifier les permissions d'un fichier sur le serveur distant au sein du terminal interactif à l' aide de la commande chmod . Par exemple, pour accorder toutes les autorisations d'accès au fichier index.html , exécutez la commande suivante :
chmod 777 index.html
Quitter la session sftp
Pour quitter le terminal interactif sftp, vous pouvez simplement taper la commande bye . Vous pouvez également utiliser les commandes exit ou quit .
Obtenir de l'aide sur la ligne de commande
Au lieu de mémoriser des commandes, il est préférable que vous appreniez à obtenir de l'aide à partir de la ligne de commande chaque fois que vous en avez besoin.
Sftp est livré avec une bonne documentation. Tapez simplement l'une des commandes suivantes pour obtenir de l'aide dans la fenêtre du terminal interactif.
help?
Applications pratiques de SFTP
Ce guide vous a montré comment transférer des données de manière sécurisée et interactive entre des ordinateurs Linux à l'aide de la commande sftp. Si vous êtes un utilisateur de Raspberry Pi, vous pourriez également être intéressé à apprendre différentes manières de transférer des données de votre Raspberry Pi vers un PC.