SFTP (SSH File Transfer Protocol) est un protocole de fichier sécurisé utilisé pour accéder, gérer et transférer des fichiers via une connexion SSH chiffrée.
Par rapport au protocole FTP traditionnel, SFTP offre toutes les fonctionnalités du FTP, mais il est plus sécurisé et plus facile à configurer : SFTP VS FTPS : Différences dans les protocoles de transferts de fichiers
De plus, contrairement à SCP, qui ne prend en charge que les transferts de fichiers, SFTP vous permet d’effectuer une gamme d’opérations sur des fichiers distants et de reprendre les transferts de fichiers.
C’est une méthode de transferts de fichiers que l’on peut utiliser avec des VPS ou serveurs dédiés en Linux (OVH, 1&1, Scaleway, …) ou tout simplement de transfert de fichiers par internet.
Dans ce tutoriel, je vous montre comment utiliser la commande Linux sftp.
Table des matières
Comment utiliser la commande SFTP pour transférer des fichiers
Se connecter à un PC distant avec SFTP
Voici la syntaxe pour établir une connexion SFTP, c’est d’ailleurs la même que SSH ou SCP :
sftp nomutilisateur@nomhote_adresseip
sftp -P numeroPort nomutilisateur@nomhote_adresseip
Par exemple pour se connecter au serveur 37.22.21.20 avec l’utilisateur malekalmorte :
sftp [email protected]
Lors de la première connexion à un hôte, vous devez accepter l’empreinte de clé publique.
Vous êtes alors connecté sur à l’interface SFTP sur le serveur distant.
Il ne reste plus qu’à passer des commandes.
Transfert de fichiers distants d’un serveur vers l’hôte local
Dans un premier temps on récupère le répertoire de travail local et l’emplacement distant.
Pour obtenir le chemin local, on utilise la commande lpwd :
sftp> lpwd
Local working directory: /home/malekalmorte
Et pour le chemin distant, on utilise pwd :
sftp> pwd
Remote working directory: /home/malekalmorte
Pour télécharger un fichier depuis la machine distante, on utilise la commande get.
Ce dernier se place alors dans l’emplacement local.
Par exemple pour télécharger le fichier monsuperfichier.txt :
sftp> get monsuperfichier.txt
Pour télécharger plusieurs fichiers avec SFTP, utilisez la commande mget.
Pour télécharger tous les fichiers dans 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
On peut aussi utiliser l’option -r pour télécharger tout un dossier en récursif :
get -r dossier_distant
Enfin si un transfert s’interrompt, vous pouvez reprendre le transfert (resume) grâce à la commande reget :
reget nomfichier.zip
Transfert de fichiers de l’hôte local vers un serveur distant
Pour uploader un fichier, c’est à dire transférer un fichier de la machine locale vers la machine distante, on utilise la commande put :
put nomfichier.zip
Notez que l’on peut aussi utiliser la commande get pour transférer un fichier distant de cette manière :
get nomfichier.zip /dossierdistant
On retrouve ensuite le même principe que la commande get.
Pour uploader un répertoire entier de manière récursive, on ajoute l’option -r :
put -r dossier_local
Pour reprendre un transfert interrompu, on utilise la commande reput :
reput filename.zip
SFTP possède des commandes pour naviguer dans les serveurs distants et locaux avec SFTP.
Elles sont similaires à celles que vous utilisez dans un terminal et shell Linux.
En général, on ajoute un l pour les commandes locales. Par exemple ls et lls.
Ce tutoriel vous donne la liste plus bas dans l’article.
Par exemple, la commande pwd est toujours utile pour vous indiquer dans quel répertoire de travail vous vous trouvez actuellement.
pwd
Pour obtenir le répertoire de travail local, ce sera lpwd :
lpwd
Pour lister les fichiers du serveur distant :
ls
De manière similaire pour lister les fichiers du répertoire de travail local :
lls
Pour passer d’un répertoire de travail distant à un autre répertoire de travail local, entrez les commandes suivantes :
cd nom_repertoire
lcd nom_repertoire
Maintenance des fichiers avec SFTP
Enfin il existe toutes sortes de commandes pour supprimer, renommer modifier les répertoires, fichiers avec SFTP.
Pour créer un répertoire sur le serveur distant avec mkdir :
mkdir nom_repertoire
Renommer un fichier distant :
rename nom_fichier nouveau_fichier
Supprimer un fichier distant :
rm nom_fichier
Supprimer un répertoire distant avec rmdir :
rmdir nom_repertoire
Changer le propriétaire d’un fichier avec la commande chown :
chown id_utilisateur nom_fichier
Changer les permissions d’un fichier avec chmod :
chmod id nom_fichier
Par exemple pour mettre le fichier avec les permissions 644 :
chmod 644 nom_fichier
chgrp est utilisé pour changer le propriétaire du groupe d’un fichier:
chgrp id_groupe nom_fichier
Liste des commandes SFTP utiles
La liste des commandes s’obtient en saisissant help
Sinon voici un tableau avec la liste complète des commandes SFTP.
Commandes | Description |
exit | Quitter sftp |
bye | Quit sftp |
cd path | Remplacez le répertoire distant par ‘chemin’ |
chgrp [-h] grp path | Changer le groupe du fichier ‘path’ en ‘grp’ |
chmod [-h] mode path | Changer les permissions du fichier ‘chemin’ en ‘mode’ |
chown [-h] own path | Changer le propriétaire du fichier ‘chemin’ en ‘propre’ |
df [-hi] [path] | Afficher les statistiques du répertoire courant ou système de fichiers contenant ‘path’ |
get [-afpR] remote [local] | Télécharger le fichier |
help | Afficher ce texte d’aide |
lcd path | Changez le répertoire local en ‘chemin’ |
lls [ls-options [chemin]] | Afficher la liste des répertoires locaux |
lmkdir | Créer un répertoire local |
ln [-s] oldpath newpath | Lien fichier distant (-s pour lien symbolique) |
lpwd | Imprimer le répertoire de travail local |
ls [-1afhlnrSt] [chemin] | Afficher la liste des répertoires distants |
lumask umask | Définit umask local sur ‘umask’ |
mkdir path | Créer un répertoire distant |
progress | Bascule l’affichage de la barre de progression |
put [-afpR] local [remote] | Envoyer un fichier |
pwd | Afficher le répertoire de travail distant |
reget [-fpR] remote [local] | Reprendre le téléchargement du fichier |
renommer oldpath newpath | Renommer le fichier distant |
reput [-fpR] local [distant] | Reprendre le fichier de téléchargement |
rm path | Supprimer le fichier distant |
rmdir path | Supprimer le répertoire distant |
symlink oldpath newpath | Fichier distant Symlink |
version | Afficher la version SFTP |
! command | Exécute ‘command’ dans le shell local |
! | Échapper au shell local |
Liens
- Protocole FTP pour partager ses fichiers : principe et fonctionnement
- 7 meilleurs logiciels de transfert de fichiers en SFTP, FTPS pour Windows
- SCP, WINSCP, PSCP : transférer des fichiers Linux et Windows
- WinSCP : transférer des fichiers de Windows vers Linux en SFTP, SCP, FTPS
- WinSCP : Synchronisation automatique, manuel de fichiers ou dossiers distants
- rsync : synchroniser, copier des fichiers à distance ou locaux
- Monter un partage Windows sous Linux avec Samba
- Comment utiliser smbclient avec des exemples
- mount et fstab : monter des partitions de disques ou NFS, CIFS sur Linux
- NFS : Partage réseau de dossiers sur Linux
- SSH : comment ça marche
- Comment se connecter en SSH à un serveur distant
- Copier des fichiers ou répertoire dans un terminal sur Linux