WinSCP Command-Line Vereenvoudigd: Jouw Volledige Referentie

WinSCP, een essentieel hulpmiddel voor veilige bestandsoverdrachten, biedt meer dan alleen een grafische gebruikersinterface. De functionaliteit van de WinSCP-commandoregel stelt IT-professionals en systeembeheerders in staat om bestandsoverdrachten rechtstreeks vanuit de console te beheren en automatiseren, waardoor efficiëntie en flexibiliteit in hun workflow worden verbeterd.

Om de ins en outs van de WinSCP GUI te leren, bekijk je het aanvullende bericht van deze post, De WinSCP GUI: De ultieme handleiding.

Ontdek elke functionaliteit van de WinSCP-opdrachtregel in deze ultieme handleiding. Je leert stap voor stap hoe je de WinSCP-commandoregel kunt gebruiken om je productiviteit te maximaliseren en je bestandsoverdrachtsprocessen te stroomlijnen.

Duik in de wereld van bestandsbeheer via de opdrachtregel met WinSCP!

Vereisten voor het gebruik van de WinSCP-opdrachtregel

  • 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.

Het genereren van een sessie-URL met de WinSCP-opdrachtregel

Terwijl de WinSCP GUI een handig Inloggen venster biedt voor het opzetten van verbindingen, vereist de WinSCP-commandoregel een andere aanpak. In plaats van interactieve vensters moet je de verbindingsattributen op een meer directe manier specificeren.

Connection attributes

Om de WinSCP-commandoregel te instrueren waar verbinding mee te maken, wordt een sessie-URL gebruikt. Deze URL omvat de in de GUI gedefinieerde verbindingsattributen.

A basic session URL follows this structure:

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

Bijvoorbeeld, om verbinding te maken met de host 1.1.1.1 met gebruikersnaam adam en wachtwoord pw via SFTP in WinSCP, zou de sessie-URL zijn:

sftp://adam:pw@1.1.1.1

Als je een WinSCP-site hebt ingesteld, kun je gemakkelijk de sessie-URL vinden. Open de WinSCP GUI, klik op Sessie, klik met de rechtermuisknop op je site en selecteer Sessie-URL/Code genereren.

WinSCP site

Het dialoogvenster Sessie-URL biedt verschillende aanpassingsopties voor je verbinding, die elk van invloed zijn op hoe WinSCP communiceert met de externe host.

  • Startdirectory – Geeft de externe directory aan die WinSCP opent bij verbinding.
  • SSH-hostsleutel – Gebruikt een bestaande SSH-sleutel voor verificatie van de externe host.
  • WinSCP-specifieke URL – Genereert een unieke sessie-URL, zoals WinSCP-sftp://, specifiek voor het begrip van WinSCP, om conflicten met standaard webbrowsers te vermijden.
  • Opslaan-extensie – Vaak gekoppeld aan WinSCP-specifieke URL’s om conflicten met andere toepassingen verder te minimaliseren.

Wanneer alle opties zijn ingeschakeld, zou het formaat van de sessie-URL er als volgt uit moeten zien:

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

Meester worden van de WinSCP-opdrachtregel: Genereren van sessieverbindingscode

Met je sessie-URL klaar, gaat WinSCP nog een stap verder door codevoorbeelden aan te bieden in het venster Sessie-URL/code genereren tabblad Script. Hier kun je kiezen uit verschillende scripttypen:

  • Scriptbestand
  • Batchbestand
  • Command-line
  • PowerShell-script

Kies uw voorkeur voor het type script en WinSCP zal de nodige syntaxis genereren voor het verbinden met een externe host via de WinSCP-commandoregel.

Generating Session Connection Code

Als u wilt coderen in .NET, C# of PowerShell, schakelt u over naar het .NET assembly-code-tabblad, zoals hieronder weergegeven.

.NET assembly code tab

Begrip van WinSCP.exe versus WinSCP.com in de context van de WinSCP-commandoregel

Het kennen van het genereren van een sessie-URL is cruciaal voor het gebruik van WinSCP-commandoregel-hulpmiddelen. Laten we verkennen hoe we verbinding kunnen maken met een host met behulp van deze tools, te beginnen met het begrijpen van de verschillen tussen winscp.exe en winscp.com.

Winscp.exe doet dienst als de GUI-start en een hulpprogramma voor de opdrachtregel voor eenvoudige taken. U kunt het gebruiken voor basisopdrachten als u de juiste parameters opgeeft.

Denk aan winscp.exe als een brug tussen de GUI-functies en de opdrachtregelinterface van WinSCP.

Voor complexere taken, met name bij scripting, is winscp.com uw keuze. Dit op de console gebaseerde hulpprogramma is ideaal voor automatiseringsscripts en ondersteunt een reeks SSH-functies. Het biedt een echte, niet-interactieve WinSCP-opdrachtregel-ervaring.

Ongeacht uw keuze, begin met het openen van een opdrachtprompt (ofwel cmd.exe of PowerShell) en navigeer naar de installatiemap van WinSCP.

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

Met de opdrachtprompt klaar, laten we doorgaan met het gebruik van WinSCP voor externe verbindingen.

Gebruik van WinSCP.exe: Verbinding maken met externe hosts met sessie-URL’s

Een van de eenvoudigste methoden om verbinding te maken met een externe host met de WinSCP-opdrachtregel is door winscp.exe uit te voeren met de sessie-URL als parameter. Om bijvoorbeeld verbinding te maken met de host 54.179.19.216 met gebruikersnaam automate en wachtwoord automate via sftp, en vervolgens naar de map /tmp te navigeren, gebruikt u de volgende opdracht:

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

Voor verbeterde beveiliging kunt u in plaats van een wachtwoord te gebruiken, verbinding maken met een externe host met behulp van een privésleutel met de parameter /privatekey. Hoewel deze methode veiliger is, vallen de complexiteiten van het instellen van een privésleutel buiten de scope van deze zelfstudie over de WinSCP-opdrachtregel.

Hier is een voorbeeld van verbinding maken met de host 54.179.19.216 met de gebruikersnaam automate en een privésleutel mykey.ppk via scp.

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

Efficiënt bestanden downloaden met WinSCP.exe Zonder een Site

De WinSCP-opdrachtregel via winscp.exe stelt u in staat om snel bestanden over te dragen met ad-hoc verbindingen, zelfs zonder een vooraf gedefinieerde WinSCP-site. Laten we bestanden downloaden van een externe host zonder een siteconfiguratie te gebruiken. Bijvoorbeeld, het downloaden van alle bestanden in de /tmp map van de externe host 54.179.19.216 met behulp van SFTP.

1. Begin met het genereren van een sessie-URL. Hieronder staat een voorbeeld van het verbinden met de externe host met de referenties automatiseer en landend in de /tmp map.

# gegenereerde sessie-URL
sftp://automate:automate@54.179.19.216/tmp

2. Voer winscp.exe uit met de sessie-URL om toegang te krijgen tot het WinSCP-overdrachtsinstellingen venster. De lokale map is standaard ~\Documenten, en WinSCP zal alle bestanden (\\*.*) in de externe map targeten.

# Opdracht syntaxis: winscp.exe [/pad/[bestand]]
winscp.exe sftp://automate:automate@54.179.19.216/tmp

3. Klik op OK om de overdracht te starten. WinSCP zal alle bestanden downloaden van de externe /tmp map naar de door jou gekozen lokale map via SFTP.

Downloading the Files without a Site

Bestanden uploaden met behulp van WinSCP.exe Zonder een Site

Na het beheersen van het downloaden van bestanden, laten we overschakelen naar het uploaden van bestanden naar een externe host met behulp van de WinSCP-commandoregel met winscp.exe. Het proces is vergelijkbaar met downloaden, maar deze keer moet je ook de /upload schakelaar gebruiken, waarbij je het bestand of de map opgeeft die je wilt uploaden.

# Uploaden van het bestand a.txt met winscp.exe naar de externe server zonder een site.
.\WinSCP.exe sftp://automate:automate@54.179.19.216/tmp/ /upload C:\Users\shanky\Desktop\a.txt

Het uitvoeren van bovenstaand commando opent het WinSCP-uploadvenster, waarbij de bestanden die moeten worden geüpload (*.*) naar de externe map van de host /tmp worden aangegeven.

Uploading the Files without a Site

Na het uploaden, log in op de externe host met een SSH-client en verifieer het succes van de upload met commando’s zoals pwd en ls -lh, die de inhoud van de directory weergeven en de succesvolle overdracht bevestigen.

File Uploaded Successfully on Remote Machine

Het gebruik van WinSCP.exe voor het downloaden van bestanden via een site

Hoewel sessie-URL’s handig zijn voor ad-hocverbindingen, vereenvoudigt het hebben van een vooraf geconfigureerde WinSCP-site het proces. Als je WinSCP al enige tijd gebruikt, heb je waarschijnlijk al verschillende sites ingesteld.

Met winscp.exe kun je eenvoudig deze sites gebruiken, gemaakt in de GUI, om verbinding te maken met een externe host, zonder dat je de details van de sessie-URL hoeft te onthouden.

Om opgeslagen sites in WinSCP te vinden, ga naar Sessie -> Sites -> Site Manager.

Bijvoorbeeld, laten we bestanden downloaden met behulp van een vooraf ingestelde site met de WinSCP-opdrachtregel.

1. Maak verbinding met de externe host met behulp van een geconfigureerde WinSCP-site. Het voorbeeld hieronder toont een verbinding met een site genaamd Adamsite.

# Verbinding maken met een WinSCP-site
winscp.exe Adamsite

Zodra verbonden, toont WinSCP een statusmelding.

Connecting to Remote Machine Using a Site

2. Voer vervolgens winscp.exe uit met het protocol (sftp), de sitenaam (Adamsite) en de doeldirectory (/tmp). Op deze manier wordt het WinSCP-overdrachtsinstellingen venster geopend, klaar voor acties voor het downloaden van bestanden.

# Initiëren van een externe verbinding via een site
winscp.exe sftp://Adamsite/tmp

Klik op OK om het downloaden van alle bestanden van de /tmp directory van de externe host naar jouw lokale directory via SFTP te starten.

Downloading Files Using a Site

Voor het uploaden van bestanden van jouw lokale machine naar een externe host is het proces analoog. Gebruik de /upload schakelaar samen met het bestands- of map-pad, zoals winscp.exe Site3 /upload .\license.txt. Volledige URL-specificatie (sftp://Adamsite/tmp) is niet nodig.

Efficiënt bewerken van externe bestanden met WinSCP.exe

Moet je een tekstbestand op een externe host bewerken? Sla de handmatige download-bewerk-upload cyclus over. Het WinSCP command line biedt een efficiëntere methode met behulp van de /edit parameter. Specificeer eenvoudig de sitenaam, /edit, en het pad van het externe bestand.

Voorbeeld:

# Bewerken van een bestand op een externe host
winscp.exe /edit /Adamsite/path/to/file.txt
# Gebruik van de WinSCP command line om een extern bestand te bewerken
.\WinSCP.exe Adamsite /edit /tmp/a.txt

Het uitvoeren van het bovenstaande commando opent jouw standaard teksteditor, waardoor je het externe bestand kunt aanpassen zoals nodig is. Deze naadloze integratie is een belangrijke functie van de WinSCP command line mogelijkheden.

Editing Remote Files Using a Site

Na het bewerken, sla eenvoudig het bestand op. WinSCP zorgt voor het bijwerken van het bestand op de externe host, waardoor het bewerk-upload proces wordt gestroomlijnd.

Workflow optimaliseren met WinSCP.exe Session Logging

Voor een uitgebreid overzicht van uw acties biedt de WinSCP-opdrachtregel sessielogging. Deze functie is onmisbaar voor het bijhouden van de uitgevoerde opdrachten tijdens een sessie, wat helpt bij het oplossen van problemen en het bijhouden van gegevens.

Om sessielogging in te schakelen, voegt u tot drie parameters toe bij het verbinden met een sessie:

# Parameters voor sessielogging
/log="<log file path>" /loglevel=<level> /logsize=<size>
  • /log – Specificeert het pad voor het logbestand.
  • /loglevel – Stelt de verboseheid van de logs in, variërend van Verminderd (1) tot Debug (2).
  • /logsize – Definieert de grootte en rotatie van het logbestand, in het formaat <totaal gearchiveerde logs>*<maximale logbestandgrootte>.

Hieronder staat een voorbeeld van winscp.exe die verbinding maakt met een host en activiteit logt naar C:\winscp.log op een Debug niveau. De opdracht behoudt tot vijf logbestanden van 10 MB (5*10MB).

# Voorbeeld van WinSCP sessielogging
winscp.exe sftp://[email protected]/tmp/ /log="C:\\winscp.log" /loglevel=2 /logsize=5*10M

Ontdekken van Geavanceerde Functies met WinSCP.com Interactieve Opdrachten

Hoewel winscp.exe een geweldige introductie biedt voor externe verbindingen, verhoogt winscp.com uw opdrachtregelervaring, met diepere interactie en controle.

Begin met het openen van winscp.com in een opdrachtregelomgeving. U zult een interactieve sessie betreden die doet denken aan SSH, aangegeven door de winscp> prompt.

.\WinSCP.com

Verbind met een externe computer met behulp van het open commando, gevolgd door de gewenste sitenaam.

open Adamsite

Na verbinding te hebben gemaakt met de externe host via WinSCP command line, zoals geïllustreerd met Adamsite, bevindt u zich in een omgeving die lijkt op een SSH-sessie. Hier kunt u opdrachten uitvoeren en efficiënt communiceren met de externe host.

Interactively Running Commands using winscp.com

Verbetering van de beveiliging: Verbinding maken met een nieuw sleutelpaar (Hostsleutel) in WinSCP

Publieke sleutel authenticatie verbetert de beveiliging bij het verbinden met sessies. Om het te gebruiken, verkrijgt u eerst de hostsleutel vingerafdruk voor uw sessie. Gebruik het ssh-keygen commando in de WinSCP-map volgens de onderstaande syntax.

Dit commando genereert een SSH-sleutelpaar, essentieel voor veilige authenticatie. Zodra uitgevoerd, ontvangt u een vingerafdruk die nodig is voor winscp.com sessieverbindingen.

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

Om verbinding te maken met de hostkey parameter, verstrekt u de gegenereerde vingerafdruk zoals getoond in het onderstaande voorbeeld.

Voeg het voorvoegsel ssh-rsa 2048 toe bij het gebruiken van de vingerafdruk van ssh-keygen.

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

Efficiëntie maximaliseren met WinSCP.com: Gebruik van de /command Parameter

Hoewel interactieve sessies geweldig zijn voor bepaalde taken, is niet-interactieve uitvoering van commando’s essentieel voor scripting en automatisering. winscp.com ondersteunt dit via de /command-parameter, waarmee je een sessie kunt opzetten, een commando kunt uitvoeren en in één stap kunt loskoppelen.

Bijvoorbeeld, gebruik de /command-parameter om een lokaal bestand naar een externe host over te brengen. Het onderstaande voorbeeld laat zien hoe je een bestand van C:\abc\abc.txt naar de map /tmp op de externe host 13.213.61.127 kopieert.

De /command-parameter neemt twee argumenten als strings: één om de sessie op te zetten en een andere voor de daadwerkelijke uitvoering van het commando.

# Niet-interactieve bestandsoverdracht met 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%

Taken automatiseren met WinSCP.com: De /script-parameter

Voor meer complexe automatiseringsbehoeften maakt de /script-parameter in winscp.com het mogelijk om een reeks commando’s uit te voeren vanuit een script. Deze functie is waardevol bij het beheren van repetitieve taken of complexe bewerkingen op externe hosts.

Om de /script-parameter te gebruiken in WinSCP-commandoregel, begin met het maken van een scriptbestand met de naam upload_file_script.txt op je desktop met je favoriete teksteditor.

Bereid een leeg tekstbestand voor met de naam a.txt in de map /tmp op je externe computer.

Maak een lokale map aan op C:\abc.

Volgende, voer de volgende inhoud in upload_file_script.txt en sla het op. Dit script downloadt het bestand a.txt van de externe /tmp directory en uploadt het opnieuw als new_file.txt.

# WinSCP Script voor bestandsoverdracht
 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

Voer dit script uit met de /script parameter in WinSCP met het volgende commando:

Gebruik de /ini=nul schakelaar om te voorkomen dat WinSCP sessieconfiguraties opslaat bij het afsluiten.

winscp.com /ini=nul /script=upload_file_script.txt
   # Output
   Authenticating...
   Session started.
   /tmp
   a.txt                     |           10 B |    0.0 KB/s | binary | 100%
   Session closed.
   # Nieuwe sessie voor upload
   Session started.
   /tmp
   C:\abc\new_file.txt       |            0 B |    0.0 KB/s | binary |   0%
   Session closed.

Gebruik van WinSCP.com voor sleutelconversie

WinSCP ondersteunt wachtwoord- en certificaat-gebaseerde of openbare-sleutelverificatie. Voor openbare-sleutelverificatie is een compatibel privésleutelformaat vereist. WinSCP helpt bij het converteren van sleutelformaten voor compatibiliteit.

Bijvoorbeeld, converteer een privésleutel in PEM-formaat (zoals die van AWS EC2) naar een Putty-vriendelijk formaat met behulp van WinSCP-opdrachtregel. De /keygen-parameter in winscp.com vergemakkelijkt deze conversie.

  • Pas de parameter /keygen toe, gevolgd door het huidige pad van de sleutel.
  • Gebruik de parameter -o om het uitvoerbestandspad van de geconverteerde sleutel te specificeren.
  • Optioneel, gebruik de parameter -c om een opmerking toe te voegen aan de geconverteerde sleutel.
.\WinSCP.com /keygen C:\Users\shanky\Desktop\testing.pem -o C:\Users\shanky\Desktop\testing.ppk -c "Converted from OpenSSH format"

Conclusie

Met deze uitgebreide handleiding voor de WinSCP-opdrachtregel, samen met de WinSCP GUI-handleiding, ben je nu uitgerust om WinSCP’s mogelijkheden volledig te benutten. Of het nu gaat om bestandsoverdrachten, commando-uitvoering, scriptuitvoering of sleutelconversies, WinSCP is een veelzijdige tool voor elke IT-professional.

Hoe plan je WinSCP in je workflow te integreren? Deel je gedachten en ervaringen!

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