Référence complète simplifiée de la ligne de commande WinSCP

WinSCP, un outil incontournable pour les transferts de fichiers sécurisés, offre bien plus qu’une simple interface graphique. La fonctionnalité en ligne de commande de WinSCP permet aux professionnels de l’informatique et aux administrateurs système de gérer et d’automatiser les transferts de fichiers directement depuis la console, améliorant ainsi l’efficacité et la flexibilité de leur flux de travail.

Pour découvrir les tenants et aboutissants de l’interface graphique de WinSCP, consultez le post complémentaire de cet article, Le guide ultime de l’interface graphique de WinSCP.

Découvrez chaque fonctionnalité de la ligne de commande que WinSCP offre dans ce guide ultime. Vous apprendrez, étape par étape, comment tirer parti de la ligne de commande WinSCP pour maximiser votre productivité et rationaliser vos processus de transfert de fichiers.

Plongeons dans le monde de la gestion de fichiers en ligne de commande avec WinSCP!

Prérequis pour utiliser la ligne de commande WinSCP

  • A Windows XP+ PC – This tutorial will use Windows 10 Enterprise.
  • A remote Linux host – This tutorial will use an Ubuntu 18.04.5 LTS machine.
  • A user account on the remote SSH host with sudo permissions.

Générer une URL de session avec la ligne de commande WinSCP

Alors que l’interface graphique de WinSCP propose une fenêtre Connexion pratique pour établir des connexions, la ligne de commande WinSCP nécessite une approche différente. Au lieu de fenêtres interactives, vous devez spécifier les attributs de connexion de manière plus directe.

Connection attributes

Pour indiquer à la ligne de commande WinSCP où se connecter, une URL de session est utilisée. Cette URL encapsule les attributs de connexion définis dans l’interface graphique.

A basic session URL follows this structure:

<protocol>://<username>:<password>@<host name>/<folder path>

Par exemple, pour vous connecter à l’hôte 1.1.1.1 avec le nom d’utilisateur adam et le mot de passe pw en utilisant SFTP dans WinSCP, l’URL de session serait :

sftp://adam:pw@1.1.1.1

Si vous avez configuré un site WinSCP, vous pouvez facilement trouver l’URL de session. Ouvrez l’interface graphique de WinSCP, cliquez sur Session, faites un clic droit sur votre site, et sélectionnez Générer l’URL/Code de session.

WinSCP site

La boîte de dialogue de l’URL de session offre diverses options de personnalisation pour votre connexion, chacune influençant la manière dont WinSCP interagit avec l’hôte distant.

  • Répertoire initial – Spécifie le répertoire distant que WinSCP ouvre lors de la connexion.
  • Clé hôte SSH – Utilise une clé SSH existante pour l’authentification de l’hôte distant.
  • URL spécifique à WinSCP – Génère une URL de session unique, telle que WinSCP-sftp://, spécifiquement pour la compréhension de WinSCP, évitant les conflits avec les navigateurs web par défaut.
  • Extension de sauvegarde – Souvent associée aux URL spécifiques à WinSCP pour minimiser davantage les conflits d’application.

Lorsque toutes les options sont activées, le format de l’URL de session devrait ressembler à ce qui suit:

<protocol>://<username>:<password>@<host name>/<folder path><save extension>
Generate Session URL/Code

Maîtriser la ligne de commande WinSCP : Générer le code de connexion de session

Avec votre URL de session prête, WinSCP va plus loin en proposant des exemples de code dans l’onglet Générer l’URL/code de session de la fenêtre Script. Ici, vous pouvez choisir parmi différents types de scripts:

  • Fichier de script
  • Fichier batch
  • Command-line
  • PowerShell script

Choisissez votre type de script préféré, et WinSCP générera la syntaxe nécessaire pour se connecter à un hôte distant en utilisant la ligne de commande WinSCP.

Generating Session Connection Code

Pour coder en .NET, C# ou PowerShell, basculez vers l’onglet code d’assemblage .NET, comme illustré ci-dessous.

.NET assembly code tab

Comprendre WinSCP.exe vs WinSCP.com dans le contexte de la ligne de commande WinSCP

Savoir comment générer une URL de session est crucial pour utiliser les outils de la ligne de commande WinSCP. Explorons comment se connecter à un hôte en utilisant ces outils, en commençant par comprendre les différences entre winscp.exe et winscp.com.

Winscp.exe sert à la fois de lanceur GUI et d’utilitaire en ligne de commande pour des tâches simples. Vous pouvez l’utiliser pour des commandes de base si vous spécifiez les bons paramètres.

Pensez à winscp.exe comme un pont entre les fonctionnalités GUI et l’interface en ligne de commande de WinSCP.

Pour des tâches plus complexes, surtout dans le scripting, winscp.com est votre choix. Cet outil basé sur la console est idéal pour les scripts d’automatisation et prend en charge une gamme de fonctions SSH. Il fournit une véritable expérience ligne de commande WinSCP non interactive.

Indépendamment de votre choix, commencez par ouvrir une invite de commandes (soit cmd.exe ou PowerShell) et naviguez vers le répertoire d’installation de WinSCP.

cd 'C:\Program Files (x86)\WinSCP'

Avec l’invite de commandes prête, passons à l’utilisation de WinSCP pour des connexions distantes.

Utilisation de WinSCP.exe : Connexion à des hôtes distants avec des URL de session

Une des méthodes les plus simples pour se connecter à un hôte distant avec la ligne de commande WinSCP est d’exécuter winscp.exe avec l’URL de session comme paramètre. Par exemple, pour se connecter à l’hôte 54.179.19.216 avec le nom d’utilisateur automate et le mot de passe automate en utilisant sftp, puis accéder au répertoire /tmp, utilisez la commande suivante :

WinSCP.exe sftp://automate:automate@54.179.19.216/tmp/

Pour une sécurité renforcée, au lieu d’utiliser un mot de passe, vous pouvez vous connecter à un hôte distant en utilisant une clé privée avec le paramètre /privatekey. Bien que cette méthode soit plus sécurisée, les détails de configuration d’une clé privée dépassent le cadre de ce tutoriel sur la ligne de commande WinSCP.

Voici un exemple de connexion à l’hôte 54.179.19.216 en utilisant le nom d’utilisateur automate et une clé privée mykey.ppk via scp.

winscp.exe scp://[email protected]/tmp/ /privatekey=mykey.ppk

Téléchargement efficace des fichiers avec WinSCP.exe sans site

La ligne de commande WinSCP via winscp.exe vous permet de transférer rapidement des fichiers en utilisant des connexions ad-hoc, même sans site WinSCP prédéfini. Explorons le téléchargement de fichiers à partir d’un hôte distant sans configuration de site. Par exemple, le téléchargement de tous les fichiers du répertoire /tmp de l’hôte distant 54.179.19.216 en utilisant SFTP.

1. Commencez par générer une URL de session. Ci-dessous un exemple de connexion à l’hôte distant avec les identifiants automate et atterrissage dans le répertoire /tmp.

# URL de Session Générée
sftp://automate:automate@54.179.19.216/tmp

2. Exécutez winscp.exe avec l’URL de session pour accéder à la boîte de dialogue des paramètres de transfert WinSCP. Le répertoire local est par défaut ~\Documents, et WinSCP ciblera tous les fichiers (\\*.*) dans le répertoire distant.

# Syntaxe de Commande : winscp.exe [/chemin/[fichier]]
winscp.exe sftp://automate:automate@54.179.19.216/tmp

3. Cliquez sur OK pour initier le transfert. WinSCP téléchargera tous les fichiers du répertoire distant /tmp vers votre répertoire local choisi via SFTP.

Downloading the Files without a Site

Téléversement de Fichiers Utilisant WinSCP.exe Sans Site

Après avoir maîtrisé le téléchargement de fichiers, passons au téléversement de fichiers sur un hôte distant en utilisant la ligne de commande WinSCP avec winscp.exe. Le processus est similaire au téléchargement, mais cette fois vous devrez également utiliser l’interrupteur /upload, en spécifiant le fichier ou le dossier que vous souhaitez téléverser.

# Téléversement du fichier a.txt en utilisant winscp.exe vers le serveur distant sans site.
.\WinSCP.exe sftp://automate:automate@54.179.19.216/tmp/ /upload C:\Users\shanky\Desktop\a.txt

L’exécution de la commande ci-dessus ouvre la boîte de dialogue de téléversement WinSCP, indiquant les fichiers à être téléversés (*.*) vers le répertoire /tmp de l’hôte distant.

Uploading the Files without a Site

Après avoir téléchargé, connectez-vous à l’hôte distant avec un client SSH et vérifiez le succès du téléchargement avec des commandes telles que pwd et ls -lh, qui afficheront le contenu du répertoire, confirmant ainsi le transfert réussi.

File Uploaded Successfully on Remote Machine

Exploiter WinSCP.exe pour le téléchargement de fichiers en utilisant un site

Alors que les URL de session sont pratiques pour les connexions ad hoc, avoir un site WinSCP préconfiguré simplifie le processus. Si vous utilisez WinSCP depuis un certain temps, vous avez probablement déjà configuré plusieurs sites.

Avec winscp.exe, vous pouvez facilement utiliser ces sites, créés dans l’interface graphique, pour vous connecter à un hôte distant, en contournant le besoin de mémoriser les détails de l’URL de session.

Pour localiser les sites enregistrés dans WinSCP, accédez à Session -> Sites -> Gestionnaire de sites.

Par exemple, explorons le téléchargement de fichiers à l’aide d’un site préexistant avec la ligne de commande WinSCP.

1. Connectez-vous à l’hôte distant en utilisant un site WinSCP configuré. L’exemple ci-dessous montre une connexion en utilisant un site nommé Adamsite.

# Connectez-vous avec un site WinSCP
winscp.exe Adamsite

Une fois connecté, WinSCP affiche une notification de statut.

Connecting to Remote Machine Using a Site

2. Ensuite, exécutez winscp.exe avec le protocole (sftp), le nom du site (Adamsite) et le répertoire cible (/tmp). Cette approche ouvre la boîte de dialogue des paramètres de transfert WinSCP, prête pour les actions de téléchargement de fichiers.

# Démarrer une connexion à distance en utilisant un site
winscp.exe sftp://Adamsite/tmp

Cliquez sur OK pour commencer le téléchargement de tous les fichiers du répertoire /tmp de l’hôte distant vers votre répertoire local via SFTP.

Downloading Files Using a Site

Pour télécharger des fichiers de votre machine locale vers un hôte distant, le processus est similaire. Utilisez l’option /upload avec le chemin du fichier ou du répertoire, comme winscp.exe Site3 /upload .\license.txt. La spécification de l’URL complète (sftp://Adamsite/tmp) n’est pas nécessaire.

Optimiser l’édition de fichiers à distance avec WinSCP.exe

Besoin d’éditer un fichier texte sur un hôte distant ? Évitez le cycle de téléchargement-édition-téléversement manuel. La ligne de commande WinSCP offre une méthode plus efficace en utilisant le paramètre /edit. Spécifiez simplement le nom du site, /edit, et le chemin du fichier distant.

Exemple :

# Édition d'un fichier sur un hôte distant
winscp.exe /edit /Adamsite/path/to/file.txt
# Utilisation de la ligne de commande WinSCP pour éditer un fichier distant
.\WinSCP.exe Adamsite /edit /tmp/a.txt

L’exécution de la commande ci-dessus lance votre éditeur de texte par défaut, vous permettant de modifier le fichier distant selon vos besoins. Cette intégration transparente est une caractéristique clé des fonctionnalités de la ligne de commande WinSCP.

Editing Remote Files Using a Site

Après l’édition, enregistrez simplement le fichier. WinSCP se charge de mettre à jour le fichier sur l’hôte distant, simplifiant ainsi le processus d’édition-téléversement.

Optimiser le flux de travail avec l’enregistrement des sessions de WinSCP.exe

Pour un enregistrement complet de vos actions, la commande WinSCP en ligne de commande offre un journal de session. Cette fonctionnalité est inestimable pour suivre les commandes exécutées lors d’une session, ce qui facilite le dépannage et la conservation des enregistrements.

Pour activer l’enregistrement de session, incluez jusqu’à trois paramètres lors de la connexion à une session :

# Paramètres pour l'enregistrement de session
/log="<log file path>" /loglevel=<level> /logsize=<size>
  • /log – Spécifie le chemin pour le fichier journal.
  • /loglevel – Définit la verbosité des journaux, allant de Réduit (1) à Débogage (2).
  • /logsize – Définit la taille et la rotation du fichier journal, au format <total logs archivés>*<taille max du fichier journal>.

Voici un exemple de winscp.exe se connectant à un hôte et enregistrant l’activité dans C:\winscp.log à un niveau de Débogage. La commande conserve jusqu’à cinq fichiers journaux de 10 Mo (5*10Mo).

# Exemple d'enregistrement de session WinSCP
winscp.exe sftp://[email protected]/tmp/ /log="C:\\winscp.log" /loglevel=2 /logsize=5*10M

Exploration des fonctionnalités avancées avec les commandes interactives WinSCP.com

Alors que winscp.exe offre une excellente introduction aux connexions à distance, winscp.com améliore votre expérience en ligne de commande, offrant une interaction et un contrôle plus approfondis.

Commencez par ouvrir winscp.com dans un environnement de ligne de commande. Vous entrerez dans une session interactive rappelant SSH, indiquée par le prompt winscp>.

.\WinSCP.com

Connectez-vous à un ordinateur distant en utilisant la commande open, suivie du nom du site souhaité.

open Adamsite

Après vous être connecté à l’hôte distant via la ligne de commande WinSCP, comme illustré avec Adamsite, vous vous retrouverez dans un environnement similaire à une session SSH. Ici, vous pouvez exécuter des commandes et interagir efficacement avec l’hôte distant.

Interactively Running Commands using winscp.com

Renforcement de la sécurité : Connexion avec une nouvelle paire de clés (clé hôte) dans WinSCP

L’authentification par clé publique renforce la sécurité lors des connexions aux sessions. Pour l’utiliser, obtenez d’abord l’empreinte digitale de la clé hôte pour votre session. Utilisez la commande ssh-keygen dans le dossier WinSCP selon la syntaxe ci-dessous.

Cette commande génère une paire de clés SSH, essentielle pour une authentification sécurisée. Une fois exécutée, vous recevrez une empreinte digitale nécessaire pour les connexions de session winscp.com.

ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key
Verifying SSH Key Fingerprint

Pour vous connecter avec le paramètre hostkey, fournissez l’empreinte digitale générée comme indiqué dans l’exemple ci-dessous.

Incluez le préfixe ssh-rsa 2048 lors de l’utilisation de l’empreinte digitale de ssh-keygen.

winscp.com open sftp://automate:[email protected]/  -hostkey="ssh-rsa 2048 x4DeZzv4jcWEk2zeeJgr5JeJ+z0xA+lGa3LC0q/B+88="

Optimisation de l’efficacité avec WinSCP.com : Utilisation du paramètre /command

Pendant que les sessions interactives sont excellentes pour certaines tâches, l’exécution de commandes non interactives est cruciale pour le script et l’automatisation. winscp.com prend en charge cela grâce au paramètre /commande, vous permettant d’établir une session, d’exécuter une commande et de vous déconnecter en une seule étape.

Par exemple, utilisez le paramètre /commande pour transférer un fichier local vers un hôte distant. L’exemple ci-dessous montre comment copier un fichier de C:\abc\abc.txt vers le répertoire /tmp sur l’hôte distant 13.213.61.127.

Le paramètre /commande prend deux arguments sous forme de chaînes : l’un pour établir la session et l’autre pour l’exécution de la commande.

# Transfert de fichiers non interactif avec WinSCP
WinSCP.com /command "open sftp://adam:[email protected]/tmp" "put C:\\abc\\abc.txt"
Session log for adam@13.213.61.127
C:\abc\abc.txt            |            0 B |    0.0 KB/s | binary |   0%

Automatisation des tâches avec WinSCP.com : Le paramètre /script

Pour des besoins d’automatisation plus complexes, le paramètre /script dans winscp.com vous permet d’exécuter une série de commandes à partir d’un script. Cette fonction est inestimable pour gérer des tâches répétitives ou des opérations complexes sur des hôtes distants.

Pour utiliser le paramètre /script dans la ligne de commande WinSCP, commencez par créer un fichier de script nommé upload_file_script.txt sur votre bureau avec votre éditeur de texte préféré.

Préparez un fichier texte vierge nommé a.txt dans le répertoire /tmp de votre ordinateur distant.

Créez un répertoire local à C:\abc.

Ensuite, entrez le contenu suivant dans upload_file_script.txt et enregistrez-le. Ce script télécharge le fichier a.txt depuis le répertoire distant /tmp et le ré-upload sous le nom de new_file.txt.

# Script WinSCP pour le transfert de fichiers
 open sftp://automate:automate@54.179.19.216/  -hostkey="ssh-rsa 2048 x4DeZzv4jcWEk2zeeJgr5JeJ+z0xA+lGa3LC0q/B+88="
 cd /tmp
 get a.txt C:\abc\
 close
 open sftp://automate:automate@54.179.19.216/ -hostkey="ssh-rsa 2048 x4DeZzv4jcWEk2zeeJgr5JeJ+z0xA+lGa3LC0q/B+88="
 cd /tmp
 put C:\abc\new_file.txt 
 close
 exit

Exécutez ce script en utilisant le paramètre /script dans WinSCP avec la commande suivante :

Utilisez l’option /ini=nul pour empêcher WinSCP de sauvegarder des configurations de session à la sortie.

winscp.com /ini=nul /script=upload_file_script.txt
   # Sortie
   Authenticating...
   Session started.
   /tmp
   a.txt                     |           10 B |    0.0 KB/s | binary | 100%
   Session closed.
   # Nouvelle session pour l'upload
   Session started.
   /tmp
   C:\abc\new_file.txt       |            0 B |    0.0 KB/s | binary |   0%
   Session closed.

Utilisation de WinSCP.com pour la conversion de clé

WinSCP prend en charge l’authentification par mot de passe, par certificat ou par clé publique. Pour utiliser l’authentification par clé publique, un format de clé privée compatible est requis. WinSCP facilite la conversion des formats de clé pour assurer la compatibilité.

Par exemple, convertissez une clé privée au format PEM (comme celles d’AWS EC2) en un format compatible avec Putty en utilisant la ligne de commande WinSCP. Le paramètre /keygen dans winscp.com facilite cette conversion.

  • Appliquez le paramètre /keygen, suivi du chemin actuel de la clé.
  • Incluez le paramètre -o pour spécifier le chemin du fichier de sortie de la clé convertie.
  • Facultativement, utilisez le paramètre -c pour ajouter un commentaire à la clé convertie.
.\WinSCP.com /keygen C:\Users\shanky\Desktop\testing.pem -o C:\Users\shanky\Desktop\testing.ppk -c "Converted from OpenSSH format"

Conclusion

Avec ce guide complet de la ligne de commande WinSCP, en plus du Guide GUI de WinSCP, vous êtes maintenant prêt à tirer pleinement parti des capacités de WinSCP. Que ce soit pour les transferts de fichiers, l’exécution de commandes, l’exécution de scripts ou les conversions de clés, WinSCP est un outil polyvalent pour tout professionnel de l’informatique.

Comment prévoyez-vous d’intégrer WinSCP dans votre flux de travail? Partagez vos réflexions et vos expériences!

Source:
https://adamtheautomator.com/winscp-command-line/