SFTP (SSH File Transfer Protocol) est un protocole de fichier sécurisé utilisé pour accéder, gérer et transférer des fichiers via un transport SSH crypté.
Par rapport au protocole FTP traditionnel, SFTP offre toutes les fonctionnalités de FTP, mais il est plus sécurisé et plus facile à configurer.
Contrairement à SCP, qui ne prend en charge que les transferts de fichiers, le SFTP vous permet d'effectuer une série d'opérations sur des fichiers distants et de reprendre les transferts de fichiers.
Dans ce tutoriel, nous allons vous montrer comment utiliser le Linux sftp commande.
Avant de commencer #
Pour pouvoir transférer des fichiers via SFTP, vous devez disposer d'une autorisation d'écriture sur le système distant.
Lors du transfert de fichiers volumineux, il est recommandé d'exécuter le sftp commande dans un screen ou tmuxsession.
Le répertoire à partir duquel vous exécutez le sftp commande est le répertoire de travail local.
Établir une connexion SFTP #
SFTP fonctionne sur un modèle client-serveur. Il s'agit d'un sous-système de SSH et prend en charge tous les mécanismes d'authentification SSH.
Pour ouvrir une connexion SFTP vers un système distant, utilisez le sftp commande suivie du nom d'utilisateur du serveur distant et de l'adresse IP ou du nom de domaine :
sftp remote_username@server_ip_or_hostname Si vous vous connectez à l'hôte à l'aide de l'authentification par mot de passe, vous serez invité à saisir le mot de passe utilisateur.
Une fois connecté, le sftp vous sera présenté invite, et vous pouvez commencer à interagir avec le serveur distant :
Connected to remote_username@server_ip_or_hostname.
sftp>
Si le serveur SSH distant n'écoute pas sur le port 22 par défaut, utilisez le -P option pour spécifier le port SFTP :
sftp -P custom_port remote_username@server_ip_or_hostname
Commandes SFTP #
La plupart des commandes SFTP sont similaires ou identiques aux commandes du shell Linux.
Pour obtenir une liste de toutes les commandes SFTP disponibles, tapez help , ou ? .
help Cela affichera une longue liste de toutes les commandes disponibles, y compris une courte description de chaque commande :
Available commands:
bye Quit sftp
cd path Change remote directory to 'path'
...
...
version Show SFTP version
!command Execute 'command' in local shell
! Escape to local shell
? Synonym for help
Navigation avec SFTP #
Lorsque vous êtes connecté au serveur distant, votre répertoire de travail actuel est le répertoire personnel de l'utilisateur distant. Vous pouvez le vérifier en tapant :
pwd Remote working directory: /home/remote_username
Pour lister les fichiers et répertoires, utilisez le ls commande :
ls
Pour naviguer vers un autre répertoire, utilisez le cd commande. Par exemple, pour passer au /tmp répertoire que vous saisiriez :
cd /tmp Les commandes ci-dessus sont utilisées pour naviguer et travailler sur l'emplacement distant.
Le shell SFTP fournit également des commandes pour la navigation locale, les informations et la gestion des fichiers. Les commandes locales sont préfixées de la lettre l .
Par exemple, pour imprimer le répertoire de travail local, vous taperez :
cd lpwd Local working directory: /home/local_username
Transférer des fichiers avec SFTP #
SFTP vous permet de transférer des fichiers entre deux machines en toute sécurité.
Si vous travaillez sur un ordinateur de bureau, vous pouvez utiliser un client SFTP à interface graphique tel que WinSCP ou FileZilla pour vous connecter au serveur distant et télécharger ou charger des fichiers.
Le sftp La commande est utile lorsque vous travaillez sur un serveur sans interface graphique et que vous souhaitez transférer des fichiers ou effectuer d'autres opérations sur les fichiers distants.
Téléchargement de fichiers avec la commande SFTP #
Pour télécharger un seul fichier depuis le serveur distant, utilisez le get commande :
get filename.zip Le résultat devrait ressembler à ceci :
Fetching /home/remote_username/filename.zip to filename.zip
/home/remote_username/filename.zip 100% 24MB 1.8MB/s 00:13
Lors du téléchargement de fichiers avec sftp , les fichiers sont téléchargés dans le répertoire à partir duquel vous avez tapé le sftp commande.
Si vous souhaitez enregistrer le fichier téléchargé sous un autre nom, indiquez le nouveau nom en deuxième argument :
get filename.zip local_filename.zip
Pour télécharger un répertoire depuis le système distant, utilisez le récursif -r choix :
get -r remote_directory
Si un transfert de fichier échoue ou est interrompu, vous pouvez le reprendre en utilisant le reget commande.
La syntaxe de reget est la même que la syntaxe de get :
reget filename.zip Télécharger des fichiers avec la commande SFTP #
Pour télécharger un fichier de la machine locale vers le serveur SFTP distant, utilisez le put commande :
put filename.zip Le résultat devrait ressembler à ceci :
Uploading filename.zip to /home/remote_username/filename.zip
filename.zip 100% 12MB 1.7MB/s 00:06
Si le fichier que vous souhaitez télécharger ne se trouve pas dans votre répertoire de travail actuel, utilisez le chemin absolu vers le fichier.
Lorsque vous travaillez avec put vous pouvez utiliser les mêmes options que celles disponibles avec le get commande.
Pour télécharger un répertoire local, vous devez taper :
put -r locale_directory Pour reprendre un téléchargement interrompu :
reput filename.zip Manipulations de fichiers avec SFTP #
En règle générale, pour effectuer des tâches sur un serveur distant, vous vous y connectez via SSH et effectuez votre travail à l'aide du terminal shell. Cependant, dans certaines situations, l'utilisateur peut n'avoir qu'un accès SFTP au serveur distant.
SFTP vous permet d'effectuer certaines commandes de manipulation de fichiers de base. Voici quelques exemples d'utilisation du shell SFTP :
-
Obtenir des informations sur l'utilisation du disque du système distant :
dfSize Used Avail (root) %Capacity 20616252 1548776 18002580 19067476 7% -
Créez un nouveau répertoire sur le serveur distant :
mkdir directory_name -
Renommer un fichier sur le serveur distant :
rename file_name new_file_name -
Supprimer un fichier sur le serveur distant :
rm file_name -
Supprimer un répertoire sur le serveur distant :
rmdir directory_name -
Modifier les autorisations d'un fichier sur le système distant :
chmod 644 file_name -
Changer le propriétaire d'un fichier sur le système distant :
chown user_id file_nameVous devez fournir l'ID utilisateur au
chownetchgrpcommandes. -
Changez le propriétaire du groupe d'un fichier distant avec :
chgrp group_id file_name
Une fois que vous avez terminé votre travail, fermez la connexion en tapant bye ou quit .
Conclusion #
Dans ce tutoriel, nous vous avons montré comment utiliser le sftp commande pour télécharger et charger des fichiers sur votre serveur SFTP distant.
Vous pouvez également configurer une authentification par clé SSH et vous connecter à vos serveurs Linux sans saisir de mot de passe. Si vous vous connectez régulièrement aux mêmes systèmes, vous pouvez simplifier votre workflow en définissant toutes vos connexions dans le fichier de configuration SSH.
N'hésitez pas à laisser un commentaire si vous avez des questions ou des commentaires.