Comment Utiliser SFTP (Protocole de Transfert de Fichiers SSH)

FTP (File Transfer Protocol) est un protocole réseau de transfert de fichiers ou d’autres données entre ordinateurs, mais il devient de plus en plus obsolète dans l’environnement actuel où la sécurité est primordiale. Heureusement, c’est là qu’intervient le SFTP, particulièrement utile pour les utilisateurs d’hébergement VPS.

Dans ce guide, nous allons montrer comment utiliser SFTP pour un transfert de fichiers sécurisé, parler d’autres commandes utiles et expliquer plus en détail son fonctionnement.

Qu’est-ce que le SFTP ?

Le SFTP (Secure File Transfer Protocol) est un protocole de transfert de fichiers qui utilise le SSH pour offrir un accès sécurisé et garantir des communications protégées avec un ordinateur distant.

Lors du transfert de fichiers, toutes les données sont divisées en paquets et envoyées via une seule connexion sécurisée.

Les informations sensibles sont chiffrées et rendues illisibles lors de leur transfert entre le client et le serveur. En d’autres termes, le contenu original (texte en clair/plaintext) est remplacé par une chaîne de caractères incohérente (texte chiffré/ciphertext).

Seul le destinataire possédant la clé de décryptage requise pourra voir le contenu original. Cela permet d’éviter tout accès non autorisé pendant le transfert de fichiers. mais quelles différences entre le FTP et le SFTP ?

Le protocole de transfert de fichiers (FTP) classique comporte deux canaux différents pour l’échange de données : le canal de commande et le canal de données. En revanche, le SFTP n’a qu’un seul canal crypté où les données sont échangées sous forme de paquets cryptés et formatés.

Comment se connecter avec SFTP ?

SFTP est un sous-système de SSH (Secure Shell). Il prend donc en charge toutes les méthodes d’authentification SSH. Bien qu’il soit plus facile de mettre en place et d’utiliser l’authentification par mot de passe, il est beaucoup plus pratique et plus sûr de créer des clés SSH pour une connexion SFTP sans mot de passe.

Vous pouvez consulter ce tutoriel sur la façon de configurer vos clés SSH. Une fois que vous êtes prêt, suivez les étapes ci-dessous pour vous connecter avec SFTP :

1. Vérifiez votre accès SSH en utilisant l’une des commandes suivantes :

ssh user@server_ipaddress

ssh user@remotehost_domainname

2. Une fois cette vérification effectuée, quittez la session si aucune erreur ne s’est produite.

3. Établissez une connexion SFTP à l’aide des commandes suivantes :

sftp user@server_ipaddress

sftp user@remotehost_domainname

4. Si vous utilisez un port SSH personnalisé, utilisez l’une de ces commandes pour modifier le port SFTP :

sftp -oPort=customport user@server_ipaddress

sftp -oPort=customport user@remotehost_domainname

5. Voici à quoi cela devrait ressembler :

sftp -oPort=49166 user@31.220.57.32

Une fois connecté, vous verrez apparaître une invite SFTP.

Comment transférer des fichiers avec SFTP ?

Nous allons vous montrer comment transférer des fichiers distants vers le système de fichiers local à l’aide de SFTP et vice versa.

Conseil de pro

Vous pouvez également transférer vos fichiers à l’aide de clients SFTP, tels que WinSCP ou FileZilla. Si vous êtes intéressé par ce dernier, consultez notre tutoriel pour savoir comment utiliser Filezilla.

Transférer des fichiers distants d’un serveur vers le système local

Pour commencer, vérifions quel répertoire de travail local et quel répertoire de travail distant nous utilisons. Pour ce faire, nous utiliserons ces commandes SFTP :

sftp> lpwd
Local directory: /LocalDirectory
sftp> pwd
Remote directory: /RemoteDirectory

Voyons maintenant comment transférer un fichier d’un serveur distant vers votre machine locale à l’aide de la commande get. Voici la syntaxe de base de la commande get :

get /RemoteDirectory/filename.txt

Par exemple, pour copier le fichier /etc/xinetd.conf du serveur distant vers votre machine locale, vous devez utiliser la commande suivante :

get /etc/xinetd.conf

Une fois le téléchargement terminé, vous pouvez constater que le fichier xinetd.conf se trouve dans le répertoire /user/home de votre machine locale.

Pour télécharger plusieurs fichiers avec SFTP, utilisez la commande mget. Pour télécharger tous les fichiers d’un répertoire appelé /etc qui ont l’extension .conf dans votre répertoire de travail actuel, vous utiliserez la commande suivante :

mget /etc/*.conf

Après le téléchargement, vous trouverez tous les fichiers *.conf dans le répertoire /user/home de votre machine locale.

Transfert de fichiers de la machine locale vers un serveur distant

Pour copier un fichier de la machine locale vers le serveur distant, nous utiliserons à nouveau la commande get. Dans ce cas, la syntaxe de la commande get sera la suivante :

get file.txt /RemoteDirectory

Pour déplacer le fichier example.txt d’une machine locale vers une machine distante, entrez la commande suivante :

put /home/user-name/example.txt /root

Le fichier se trouve désormais dans le répertoire racine du serveur distant. Vous pouvez également essayer de transférer plusieurs fichiers à l’aide de la commande mput. Elle fonctionne pratiquement de la même manière que mget :

mput /home/user-name/*.txt /root

Cette commande déplacerait tous les fichiers portant l’extension .txt dans le répertoire /home/user-name de la machine locale vers le répertoire distant /root.

Conseil de pro

Gardez à l’esprit que pour télécharger et téléverser les fichiers avec SFTP, vous devrez taper la commande put ou get et appuyer sur la touche TAB.

Commandes pour naviguer avec SFTP

Certaines commandes peuvent être utilisées pour naviguer plus efficacement entre les serveurs locaux et distants avec SFTP. Elles sont similaires à celles que vous utilisez dans l’invite de l’interpréteur de commandes Linux.

Par exemple, la commande pwd est toujours utile pour vous permettre de savoir dans quel répertoire de travail vous vous trouvez actuellement.

sftp> pwd
Remote directory: /RemoteDirectory

ou

sftp> lpwd
Local directory: /LocalDirectory

Vous pouvez également afficher la liste des fichiers et des répertoires que vous utilisez pour le répertoire distant :

ls

De même, pour le répertoire de travail local :

lls

Par exemple, la sortie ressemblera à ceci :

Pictures     Templates     Media     Text.txt     Documents

Pour passer d’un répertoire de travail distant à un autre répertoire de travail local, entrez les commandes suivantes :

cd name_of_directory
lcd name_of_directory

Enfin, utilisez les commandes ! et exit pour revenir au shell local et quitter SFTP.

Notions de base sur la maintenance des fichiers à l’aide de SFTP

Avec SFTP, vous pouvez également gérer des répertoires et des fichiers à l’aide de commandes spécifiques.

Pour vérifier l’espace disque du serveur distant en gigabytes (gigaoctets), utilisez la fonction df comme suit :

df -h

Voici un exemple de résultat :

Filesystem         Size  Used Avail Use% Mounted on
/dev/ploop29212p1   59G  2.5G   56G   5% /
none               1.5G     0  1.5G   0% /sys/fs/cgroup
none               1.5G     0  1.5G   0% /dev
tmpfs              1.5G     0  1.5G   0% /dev/shm
tmpfs              1.5G  568K  1.5G   1% /run
tmpfs              308M     0  308M   0% /run/user/0

Utilisez la commande mkdir pour créer un nouveau répertoire sur le serveur local ou distant :

mkdir name_of_directory
lmkdir name_of_directory

Vous pouvez supprimer un répertoire du serveur distant à l’aide de la commande rmdir :

rmdir name_of_directory

Par ailleurs, renommer un fichier distant est également assez simple :

rename filename new_filename

Voici un exemple :

rename Ancien_FichierExemple Nouveau_FichierExemple

Si vous souhaitez supprimer un fichier distant, utilisez la commande rm :

rm filename

La commande chown est utilisée pour remplacer le propriétaire d’un fichier :

chown userid filename

userid peut être un nom d’utilisateur ou un identifiant numérique. Par exemple :

chown UserOne FileExample
chown 1234 FileExample

chgrp est utilisé pour changer le propriétaire d’un groupe de fichiers :

chgrp groupid filename

Par exemple :

chgrp NewGroup FileExample

Enfin, vous devrez utiliser la commande interactive chmod pour modifier les droits d’un fichier :

chmod 764 FileExample

Dans cet exemple, la valeur à trois chiffres représente l’utilisateur, le groupe et les autres utilisateurs du fichier.

Quant aux autorisations de lecture (r), d’écriture (w) et d’exécution (x), leurs valeurs sont respectivement de 4, 2 et 1. La valeur 0 peut également être utilisée pour n’accorder aucune autorisation.

Pour attribuer les autorisations, il suffit de calculer les valeurs totales pour chaque classe d’utilisateurs. Voici le détail de l’exemple :

chmod ugo FileExample
# u represents the User who'll be able to read, write and execute the file.
# g is for Groups, here we've given the permission to write and execute the file.
# o or Others will only be able to read the file.

Liste des commandes SFTP utiles

Si vous avez besoin d’un aide-mémoire rapide, voici une liste de toutes les commandes SFTP disponibles. Vous pouvez trouver cette liste vous-même en entrant simplement la commande help ou ? – les deux afficheront le même résultat.

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

Conclusion

Cela couvre à peu près les bases de l’utilisation de SFTP pour le transfert sécurisé de fichiers entre les systèmes. Nous espérons que ce tutoriel s’est avéré utile. Toutefois, si vous avez besoin de plus d’informations sur le FTP uniquement, vous pouvez trouver d’autres tutoriels ici.

Si vous avez d’autres questions, n’hésitez pas à laisser un commentaire ci-dessous.

Author
L'auteur

Chaimaa Chakir

Chaimaa est une spécialiste du référencement et du marketing de contenu chez Hostinger. Elle est passionnée par le marketing digital et la technologie. Elle espère aider les gens à résoudre leurs problèmes et à réussir en ligne. Chaimaa est une cinéphile qui adore les chats et l'analyse des films.