Comment implémenter des opérations SFTP dans PowerShell ?

Découvrez comment transférer des fichiers en toute sécurité avec SFTP, ses différences par rapport à FTP et SCP, ainsi que la façon de configurer un serveur SFTP sous Windows. Découvrez les commandes PowerShell pour transférer des fichiers volumineux et explorez les méthodes de chiffrement et d'authentification SFTP afin de garantir la sécurité des données pendant les transferts.

download-icon
Téléchargement gratuit
pour VM, OS, DB, Fichier, NAS, etc.
eleonore

Updated by Eleonore on 2025/07/11

Table des matières
  • Quelle est la commande SFTP ?

  • SFTP contre FTP et SCP

  • Comprendre le chiffrement SFTP

  • Comment fonctionne l'authentification SFTP ?

  • Comment configurer un serveur SFTP sous Windows ?

  • Transfert de fichiers volumineux avec SFTP via PowerShell

  • Solution professionnelle et automatisée de sauvegarde des machines virtuelles

  • FAQ Powershell SFTP

  • Conclusion

SFTP, ou Secure File Transfer Protocol, est un outil utile pour transférer en toute sécurité des fichiers entre des serveurs locaux et distants. Contrairement à son prédécesseur FTP, SFTP utilise SSH, ou Secure Shell, pour chiffrer les commandes et les données. Cela garantit que les informations sensibles sont protégées pendant leur transmission. Que vous utilisiez Linux, Windows ou macOS, SFTP offre un moyen fiable d'accéder, de transférer et de gérer des fichiers sur des serveurs distants. Il prend en charge diverses opérations, allant du téléchargement et de l'envoi de fichiers à la création et à la liste des répertoires.

Quelle est la commande SFTP ?

La commande SFTP est un ensemble d'instructions utilisées pour transférer des fichiers de manière sécurisée en communiquant avec un serveur distant. Ces commandes font partie du protocole Secure File Transfer Protocol, qui est intégré à la suite de protocoles Secure Shell (SSH), offrant un canal chiffré pour les activités de transfert de fichiers. Ce chiffrement garantit que les données transmises ainsi que les commandes utilisées pour le transfert sont protégées contre tout accès ou interception non autorisés.

Les commandes SFTP permettent aux utilisateurs de transférer, télécharger et gérer des fichiers sur un serveur distant de manière sécurisée. Cela inclut la création et la navigation dans des répertoires, la liste des fichiers, ainsi que la modification des autorisations des fichiers. Pour les développeurs, les administrateurs système et toute personne souhaitant garantir la confidentialité et l'intégrité des données transmises via le réseau, les commandes SFTP constituent un outil essentiel.

En utilisant les commandes SFTP, les organisations et les individus peuvent protéger les informations sensibles contre les menaces externes, ce qui en fait la méthode privilégiée pour transférer des fichiers de manière sécurisée entre différents systèmes d'exploitation et plates-formes. Par conséquent, comprendre et utiliser efficacement ces commandes est essentiel pour garantir la sécurité des données en transit.

SFTP contre FTP et SCP

Le transfert de fichiers de manière sécurisée et efficace nécessite le choix du bon protocole. Voici une analyse comparative de SFTP, FTP et SCP, mettant en évidence leurs différences en matière de sécurité et de cas d'utilisation.

FonctionnalitéSFTP (Secure File Transfer Protocol)
FTP (File Transfer Protocol)SCP (Secure Copy Protocol)
SécuritéÉlevé – Utilise SSH pour chiffrer les commandes et les données.Faible – Transfère des données en texte brut, vulnérable aux interceptions. Peut utiliser SSL/TLS pour une protection FTPS.Élevée – Utilise SSH pour le transfert de données sécurisé, similaire à SFTP.
FonctionnalitéComplet – Prend en charge le téléchargement et l'envoi de fichiers, la navigation dans les répertoires, les opérations sur les fichiers, etc.Basique – Principalement utilisé pour le téléchargement et l'upload de fichiers. Utilise FTPS pour des fonctionnalités étendues.Limitée – Principalement axée sur la copie de fichiers.
Cas d'utilisationAdapté pour une gestion et un transfert de fichiers sécurisés et polyvalents.Utilisé dans des scénarios moins sensibles ou avec d'anciens systèmes. FTPS garantit la sécurité.Adapté aux tâches de copie de fichiers simples et sécurisées, sans fonctionnalités de gestion des fichiers.

Le SFTP fournit une solution sécurisée et polyvalente pour le transfert de fichiers, ce qui en fait le choix privilégié dans les environnements où la sécurité et les fonctionnalités sont essentielles. Le FTP, bien qu'utilisé de manière courante, ne possède pas de sécurité intégrée mais peut être amélioré via FTPS avec SSL/TLS. SCP offre une copie de fichiers simple et sécurisée, mais il ne dispose pas des capacités étendues de gestion de fichiers du SFTP.

Comprendre le chiffrement SFTP

Le SFTP chiffre les données pendant leur transmission, empêchant tout accès ou écoute non autorisés. Lorsqu'une session SFTP commence, le client et le serveur établissent une connexion sécurisée à l'aide de SSH. Cette connexion chiffre à la fois les commandes et les données transmises, garantissant ainsi la confidentialité des informations sensibles. Le chiffrement utilise des algorithmes avancés pour protéger les données contre l'interception et le déchiffrement.

Le SFTP garantit l'intégrité des données grâce à des fonctions de hachage cryptographique. Ces fonctions vérifient les données envoyées et reçues pendant la transmission pour s'assurer que chaque paquet de données est complet et intact. Si les données sont altérées pendant la transmission, le protocole détecte cette altération et peut interrompre le transfert pour éviter la corruption des données.

Comment fonctionne l'authentification SFTP ?

L'authentification SFTP est un processus en deux étapes qui garantit que seuls les utilisateurs autorisés peuvent accéder au serveur. Premièrement, le serveur authentifie le client via un processus d'échange de clés afin de vérifier de manière sécurisée l'identité du client. Ensuite, le client peut devoir fournir un nom d'utilisateur et un mot de passe ou utiliser une clé privée pour une authentification supplémentaire. Cette double couche d'authentification renforce la sécurité de la connexion et empêche l'accès non autorisé. 

Comment configurer un serveur SFTP sous Windows ?

Pour configurer un serveur SFTP sous Windows, suivez ces étapes :

1. Installer le serveur OpenSSH

Ouvrez Windows PowerShell ou l'Invite de commandes en tant qu'administrateur. Ensuite, utilisez la commande suivante pour installer le composant serveur OpenSSH :

Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

2. Une fois l'installation terminée, utilisez la commande suivante pour démarrer le service SSH :

Start-Service sshd
Set-Service -Name sshd -StartupType 'Automatic'

3. Configurer le pare-feu

SFTP utilise le protocole SSH. Pour permettre à des appareils externes d'accéder au serveur SFTP, vous devez ouvrir le port approprié sur le serveur. Par défaut, SFTP utilise le port 22. Vous devez ouvrir ce port dans le pare-feu Windows. Pour le configurer, suivez ces étapes :

  • Ouvrez le Windows Defender Firewall.

  • Cliquez sur « Advanced settings. »

  • Dans le volet de gauche, sélectionnez « Inbound Rules ».

  • À droite, cliquez sur "New Rule".

  • Sélectionnez « Port » et cliquez sur « Next ».

  • Choisissez « TCP » et le port local spécifique (22).

  • Autoriser la connexion.

  • Sélectionnez le type de réseau applicable (généralement "Public").

  • Entrez un nom de règle et cliquez sur "Finish".

4. Créer un utilisateur SFTP

Pour créer un utilisateur sur le serveur SFTP, utilisez l'outil en ligne de commande OpenSSH. Ouvrez l'invite de commandes et utilisez la commande suivante pour créer un nouvel utilisateur :

Remplacez "username" par le nom d'utilisateur souhaité et "password" par le mot de passe de l'utilisateur.

5. Configurer les autorisations d'accès SFTP

Pour restreindre les permissions d'accès de l'utilisateur SFTP, vous pouvez configurer le fichier sshd_config d'OpenSSH. Ce fichier se trouve dans le répertoire C:\ProgramData\ssh et peut être édité à l'aide d'un éditeur de texte. Vous pouvez configurer l'accès de l'utilisateur, par exemple en le limitant à un répertoire spécifique.

Après avoir ouvert le fichier sshd_config, trouvez ces deux lignes :

#Subsystem sftp /usr/lib/openssh/sftp-server
#Subsystem sftp internal-sftp

Supprimez les symboles de commentaire et modifiez-les comme suit :

Subsystem sftp C:\Windows\System32\OpenSSH\sftp-server.exe

Après avoir enregistré le fichier, redémarrez le service SSH :

Restart-Service sshd

6. Se connecter au serveur SFTP

Sur un autre ordinateur, vous pouvez utiliser un client SFTP pour vous connecter au serveur SFTP configuré. De nombreuses applications clientes SFTP sont disponibles, telles que FileZilla, WinSCP, etc. Dans le client SFTP, saisissez l'adresse IP du serveur, le nom d'utilisateur et le mot de passe, et spécifiez le port 22 pour établir la connexion SFTP au serveur.

Transfert de fichiers volumineux avec SFTP via PowerShell

Lors du transfert de fichiers volumineux dans PowerShell, il est essentiel de s'assurer que le débit de transfert et les mécanismes de gestion des erreurs soient efficacement gérés pendant le transfert. Pour les fichiers volumineux, en plus du FTP, nous pouvons utiliser les protocoles SFTP ou SMB. PowerShell ne prend pas en charge SFTP en mode natif, mais peut réaliser un transfert de fichiers SFTP via des bibliothèques tierces telles que PSSFTP ou WinSCP.

Voici un exemple d'utilisation de WinSCP pour télécharger des fichiers via PowerShell :

Téléchargez et installez WinSCP. Utilisez l'outil en ligne de commande de WinSCP dans PowerShell.

Exemple (télécharger un fichier en utilisant WinSCP) :

1. Définir la session SFTP et le chemin d'upload du fichier

$session = New-Object WinSCP.Session
$session.Open($sessionOptions)

2. Télécharger le fichier

$session.PutFiles("C:\path\to\file.txt", "/remote/path/to/file.txt").Check()

3. Fermer la session

$session.Dispose()

Configuration de SessionOptions de WinSCP :

$sessionOptions = New-Object WinSCP.SessionOptions
$sessionOptions.Protocol = [WinSCP.Protocol]::Sftp
$sessionOptions.HostName = "sftp.example.com"
$sessionOptions.UserName = "username"
$sessionOptions.Password = "password"

Solution professionnelle et automatisée de sauvegarde des machines virtuelles

En plus de l'utilisation de PowerShell pour les tâches SFTP, les organisations à la recherche de solutions de sauvegarde plus robustes, automatisées et centralisées peuvent bénéficier d'outils tels que Vinchin Backup & Recovery. Vinchin est un fournisseur leader de solutions de sauvegarde et de reprise après sinistre conçues pour supporter une large gamme de plateformes de virtualisation, incluant VMware, Hyper-V, Proxmox, XenServer, et plus encore. Grâce à ses fonctionnalités avancées telles que la déduplication, la compression et la planification flexible des sauvegardes, Vinchin aide les entreprises à garantir la sécurité et la disponibilité de leurs données critiques.

La solution Vinchin permet également une gestion efficace des sauvegardes multiplateformes, offrant des capacités de sauvegarde locale et distante (offsite backup). Elle prend en charge différents modes de sauvegarde, notamment les sauvegardes complètes, incrémentielles et différentielles, permettant ainsi aux organisations d'optimiser le stockage et de maintenir un RPO fiable. Grâce à des fonctionnalités telles que la restauration précise, la reprise après sinistre et la migration rapide, Vinchin aide les entreprises à réagir rapidement face aux incidents de perte de données, garantissant un temps d'arrêt minimal.

Il ne vous faut que 4 étapes pour sauvegarder vos machines virtuelles avec Vinchin Backup & Recovery :

1. Sélectionnez l'objet de sauvegarde.

Sauvegarder les machines virtuelles avec Vinchin

2. Sélectionner la destination de la sauvegarde.

Sauvegarder les machines virtuelles avec Vinchin

3. Configurer les stratégies de sauvegarde.

Sauvegarder les machines virtuelles avec Vinchin

4. Vérifiez et envoyez l'offre d'emploi.

Sauvegarder les machines virtuelles avec Vinchin

Vinchin Backup & Recovery, faisant confiance à des milliers d'entreprises, propose un essai gratuit de 60 jours. Contactez-nous pour partager vos besoins informatiques et recevoir une solution sur mesure dès maintenant.

FAQ Powershell SFTP

1. Quel est le meilleur client SFTP pour Windows ?

Pour Windows, les meilleurs clients SFTP incluent WinSCP (facile à utiliser, prise en charge des scripts et de l’automatisation), FileZilla (open-source, fiable, prise en charge FTP/SFTP), Cyberduck (intégration avec le stockage cloud, édition de fichiers), etc. Chaque client propose des fonctionnalités uniques adaptées à vos besoins, allant des transferts de fichiers simples à une sécurité avancée et la gestion du stockage cloud.

2. Quelle est la différence entre SFTP et FTP ?

Le SFTP est plus sécurisé que le FTP car il chiffre à la fois les données et les commandes, en utilisant SSH pour une communication sécurisée via le port 22. En revanche, le FTP transfère les données en texte clair, sans chiffrement, ce qui le rend vulnérable à l'interception. De plus, le FTP utilise le port 21 pour le contrôle et plusieurs ports pour le transfert de données, alors que le SFTP fonctionne via une seule connexion sécurisée.

Conclusion

PowerShell offre des fonctions puissantes pour gérer diverses tâches de transfert de données, notamment en utilisant des protocoles et outils tels que HTTP, FTP, SFTP et les services de stockage cloud. Vous pouvez l'utiliser pour automatiser des tâches telles que le transfert de fichiers, les téléchargements et uploads, la gestion des erreurs et les transmissions chiffrées. En combinaison avec le Planificateur de tâches de Windows', PowerShell peut également exécuter des tâches d'automatisation programmées, améliorant ainsi considérablement l'efficacité du travail.

Partager sur:

Categories: Tech Tips