WinSCP Command-Line Semplificato: La tua Referenza Completa

WinSCP, uno strumento fondamentale per trasferimenti sicuri di file, offre più di una semplice interfaccia utente grafica. La funzionalità della riga di comando di WinSCP consente a professionisti IT e sysadmin di gestire e automatizzare trasferimenti di file direttamente dalla console, migliorando l’efficienza e la flessibilità nel loro flusso di lavoro.

Per apprendere dettagliatamente l’uso dell’interfaccia grafica di WinSCP, consulta il post complementare a questo, WinSCP GUI: La Guida Definitiva.

Scopri ogni caratteristica della riga di comando offerta da WinSCP in questa Guida Definitiva. Imparerai passo dopo passo come sfruttare la riga di comando di WinSCP per massimizzare la produttività e semplificare i processi di trasferimento file.

Immergiamoci nel mondo della gestione file da riga di comando con WinSCP!

Prerequisiti per l’utilizzo della riga di comando di 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.

Generare un URL di sessione con la riga di comando di WinSCP

Mentre l’interfaccia grafica di WinSCP offre una comoda finestra di Login per configurare le connessioni, la riga di comando di WinSCP richiede un approccio diverso. Invece delle finestre interattive, è necessario specificare gli attributi di connessione in modo più diretto.

Connection attributes

Per istruire la riga di comando di WinSCP su dove connettersi, viene utilizzato un URL di sessione. Questo URL racchiude gli attributi di connessione definiti nell’interfaccia grafica.

A basic session URL follows this structure:

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

Ad esempio, per connettersi all’host 1.1.1.1 con nome utente adam e password pw tramite SFTP in WinSCP, l’URL di sessione sarebbe:

sftp://adam:pw@1.1.1.1

Se hai configurato un sito WinSCP, puoi trovare facilmente l’URL della sessione. Apri l’interfaccia grafica di WinSCP, clicca su Sessione, fai clic con il pulsante destro del mouse sul tuo sito e seleziona Genera URL/ Codice sessione.

WinSCP site

La finestra di dialogo dell’URL della sessione fornisce varie opzioni di personalizzazione per la tua connessione, ognuna influenzando il modo in cui WinSCP interagisce con l’host remoto.

  • Directory iniziale – Specifica la directory remota che WinSCP apre all’avvio della connessione.
  • Chiave host SSH – Utilizza una chiave SSH esistente per l’autenticazione dell’host remoto.
  • URL specifico di WinSCP – Genera un URL di sessione univoco, come WinSCP-sftp://, specificamente per la comprensione di WinSCP, evitando conflitti con i browser web predefiniti.
  • Estensione di salvataggio – Spesso abbinata agli URL specifici di WinSCP per ridurre ulteriormente i conflitti delle applicazioni.

Quando tutte le opzioni sono abilitate, il formato dell’URL della sessione dovrebbe assomigliare al seguente:

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

Mastering the WinSCP Command-Line: Generating Session Connection Code

Con il tuo URL della sessione pronto, WinSCP va oltre offrendo esempi di codice nella scheda Genera URL/ codice sessione della finestra. Script. Qui, puoi selezionare diversi tipi di script:

  • File di script
  • File batch
  • Script della riga di comando
  • Script di PowerShell

Scegli il tipo di script preferito e WinSCP genererà la sintassi necessaria per connettersi a un host remoto utilizzando la riga di comando di WinSCP.

Generating Session Connection Code

Per programmare in .NET, C# o PowerShell, passa alla scheda codice di assembly .NET, come mostrato di seguito.

.NET assembly code tab

Comprendere WinSCP.exe vs WinSCP.com nel contesto della riga di comando di WinSCP

Sapere come generare un URL di sessione è cruciale per utilizzare gli strumenti della riga di comando di WinSCP. Esaminiamo come connettersi a un host utilizzando questi strumenti, partendo dalla comprensione delle differenze tra winscp.exe e winscp.com.

Winscp.exe funge da lanciatore GUI e da utility a riga di comando per compiti semplici. Puoi usarlo per comandi di base se specifichi i parametri corretti.

Pensa a winscp.exe come a un ponte tra le funzionalità GUI e l’interfaccia a riga di comando di WinSCP.

Per compiti più complessi, specialmente nello scripting, winscp.com è la tua scelta. Questo strumento basato su console è ideale per gli script di automazione e supporta una gamma di funzioni SSH. Fornisce un’esperienza vera e propria, non interattiva, della riga di comando di WinSCP.

Indipendentemente dalla tua scelta, inizia aprendo un prompt dei comandi (sia cmd.exe che PowerShell) e naviga nella directory di installazione di WinSCP.

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

Con il prompt dei comandi pronto, procediamo all’utilizzo di WinSCP per le connessioni remote.

Utilizzando WinSCP.exe: Connessione a host remoti con gli URL di sessione

Uno dei metodi più semplici per connettersi a un host remoto con la riga di comando di WinSCP è eseguire winscp.exe con l’URL di sessione come parametro. Ad esempio, per connettersi all’host 54.179.19.216 con nome utente automate e password automate utilizzando sftp, e quindi navigare nella directory /tmp, utilizzare il seguente comando:

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

Per una maggiore sicurezza, invece di utilizzare una password, è possibile connettersi a un host remoto utilizzando una chiave privata con il parametro /privatekey. Anche se questo metodo è più sicuro, le complessità della configurazione di una chiave privata vanno oltre lo scopo di questo tutorial sulla riga di comando di WinSCP.

Ecco un esempio di connessione all’host 54.179.19.216 utilizzando il nome utente automate e una chiave privata mykey.ppk tramite scp.

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

Scaricando file efficientemente con WinSCP.exe senza un sito

La riga di comando di WinSCP tramite winscp.exe consente di trasferire rapidamente file utilizzando connessioni ad hoc, anche senza un sito WinSCP predefinito. Esploriamo il download di file da un host remoto senza una configurazione del sito. Ad esempio, scaricando tutti i file nella directory /tmp dell’host remoto 54.179.19.216 utilizzando SFTP.

1. Inizia generando un URL di sessione. Di seguito è riportato un esempio di connessione all’host remoto con le credenziali automate e atterrando nella directory /tmp.

# URL di sessione generato
sftp://automate:automate@54.179.19.216/tmp

2. Esegui winscp.exe con l’URL di sessione per accedere alla casella di dialogo delle impostazioni di trasferimento di WinSCP. La directory locale predefinita è ~\Documenti, e WinSCP mirerà a tutti i file (\\*.*) nella directory remota.

# Sintassi del comando: winscp.exe [/percorso/[file]]
winscp.exe sftp://automate:automate@54.179.19.216/tmp

3. Fai clic su OK per avviare il trasferimento. WinSCP scaricherà tutti i file dalla directory remota /tmp nella directory locale scelta tramite SFTP.

Downloading the Files without a Site

Caricamento dei file utilizzando WinSCP.exe senza un sito

Dopo aver padroneggiato il download dei file, passiamo al caricamento dei file su un host remoto utilizzando la riga di comando di WinSCP con winscp.exe. Il processo è simile al download, ma questa volta dovrai anche utilizzare lo switch /upload, specificando il file o la cartella che desideri caricare.

# Caricamento del file a.txt utilizzando winscp.exe sul server remoto senza un sito.
.\WinSCP.exe sftp://automate:automate@54.179.19.216/tmp/ /upload C:\Users\shanky\Desktop\a.txt

L’esecuzione del comando sopra porta alla visualizzazione della finestra di caricamento di WinSCP, indicando i file da caricare (*.*) nella directory /tmp dell’host remoto.

Uploading the Files without a Site

Dopo aver caricato, accedi all’host remoto con un client SSH e verifica il successo del caricamento con comandi come pwd e ls -lh, che mostreranno i contenuti della directory, confermando il trasferimento riuscito.

File Uploaded Successfully on Remote Machine

Sfruttando WinSCP.exe per il Download di File Utilizzando un Sito

Se gli URL della sessione sono pratici per connessioni ad hoc, avere un sito WinSCP preconfigurato semplifica il processo. Se hai utilizzato WinSCP per un po’ di tempo, è probabile che tu abbia già configurato diversi siti.

Con winscp.exe, puoi facilmente utilizzare questi siti, creati nell’interfaccia grafica, per connetterti a un host remoto, evitando di dover ricordare i dettagli dell’URL della sessione.

Per individuare i siti salvati in WinSCP, vai su Sessione -> Siti -> Gestore Siti.

Ad esempio, esploriamo il download di file utilizzando un sito preesistente con la riga di comando di WinSCP.

1. Connettiti all’host remoto utilizzando un sito WinSCP configurato. L’esempio seguente mostra una connessione utilizzando un sito chiamato Adamsite.

# Connettiti con un sito WinSCP
winscp.exe Adamsite

Una volta connesso, WinSCP mostra una notifica di stato.

Connecting to Remote Machine Using a Site

2. Successivamente, esegui winscp.exe con il protocollo (sftp), il nome del sito (Adamsite) e la directory di destinazione (/tmp). Questo approccio porta alla finestra di dialogo delle impostazioni di trasferimento di WinSCP, pronta per le azioni di download dei file.

# Iniziare la connessione remota utilizzando un sito
winscp.exe sftp://Adamsite/tmp

Fare clic su OK per avviare il download di tutti i file dalla directory /tmp dell’host remoto nella directory locale tramite SFTP.

Downloading Files Using a Site

Per caricare i file dalla tua macchina locale a un host remoto, il processo è analogo. Utilizza lo switch /upload insieme al percorso del file o della directory, come winscp.exe Site3 /upload .\license.txt. La specifica dell’URL completo (sftp://Adamsite/tmp) non è necessaria.

Ottimizzazione della modifica remota dei file con WinSCP.exe

Hai bisogno di modificare un file di testo su un host remoto? Salta il ciclo manuale di download-modifica-upload. La riga di comando di WinSCP offre un metodo più efficiente utilizzando il parametro /edit. Basta specificare il nome del sito, /edit, e il percorso del file remoto.

Esempio:

# Modifica di un file su un host remoto
winscp.exe /edit /Adamsite/path/to/file.txt
# Utilizzo della riga di comando di WinSCP per modificare un file remoto
.\WinSCP.exe Adamsite /edit /tmp/a.txt

Eseguendo il comando sopra si avvia il tuo editor di testo predefinito, consentendoti di modificare il file remoto come necessario. Questa integrazione senza soluzione di continuità è una caratteristica chiave delle capacità della riga di comando di WinSCP.

Editing Remote Files Using a Site

Dopo la modifica, basta salvare il file. WinSCP si occupa di aggiornare il file sull’host remoto, semplificando il processo di modifica-upload.

Ottimizzazione del flusso di lavoro con la registrazione delle sessioni di WinSCP.exe

Per un registro completo delle tue azioni, il comando WinSCP linea di comando offre il logging della sessione. Questa funzionalità è preziosa per tracciare i comandi eseguiti durante una sessione, aiutando nella risoluzione dei problemi e nella registrazione.

Per abilitare il logging della sessione, includere fino a tre parametri durante la connessione a una sessione:

# Parametri per il logging della sessione
/log="<log file path>" /loglevel=<level> /logsize=<size>
  • /log – Specifica il percorso per il file di log.
  • /loglevel – Imposta la verbosità dei log, che va da Ridotto (1) a Debug (2).
  • /logsize – Definisce la dimensione e la rotazione del file di log, nel formato <total archived logs>*<max log file size>.

Di seguito è riportato un esempio di winscp.exe che si connette a un host e registra l’attività su C:\winscp.log con un livello di Debug. Il comando mantiene fino a cinque file di log da 10MB (5*10MB).

# Esempio di logging della sessione WinSCP
winscp.exe sftp://[email protected]/tmp/ /log="C:\\winscp.log" /loglevel=2 /logsize=5*10M

Esplorazione delle funzionalità avanzate con i comandi interattivi di WinSCP.com

Anche se winscp.exe offre una buona introduzione alle connessioni remote, winscp.com migliora la tua esperienza sulla riga di comando, offrendo un’interazione e un controllo più profondi.

Inizia aprendo winscp.com in un ambiente della riga di comando. Entrerai in una sessione interattiva simile a SSH, indicata dal prompt winscp>.

.\WinSCP.com

Connettiti a un computer remoto usando il comando open, seguito dal nome del sito desiderato.

open Adamsite

Dopo esserti connesso all’host remoto tramite la riga di comando di WinSCP, come illustrato con Adamsite, ti troverai in un ambiente simile a una sessione SSH. Qui puoi eseguire comandi e interagire con l’host remoto in modo efficiente.

Interactively Running Commands using winscp.com

Miglioramento della sicurezza: Connettiti con una nuova coppia di chiavi (Host Key) in WinSCP

L’autenticazione a chiave pubblica migliora la sicurezza durante la connessione alle sessioni. Per usarla, ottieni prima l’impronta digitale della chiave host per la tua sessione. Usa il comando ssh-keygen nella cartella WinSCP seguendo la sintassi qui sotto.

Questo comando genera una coppia di chiavi SSH, essenziale per l’autenticazione sicura. Una volta eseguito, riceverai un’impronta necessaria per le connessioni delle sessioni winscp.com.

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

Per connettersi con il parametro hostkey, fornisci l’impronta generata come mostrato nell’esempio qui sotto.

Includi il prefisso ssh-rsa 2048 quando usi l’impronta da ssh-keygen.

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

Massimizzazione dell’efficienza con WinSCP.com: Utilizzo del parametro /command

Mentre le sessioni interattive sono ottime per determinati compiti, l’esecuzione di comandi non interattivi è fondamentale per lo scripting e l’automazione. winscp.com supporta ciò tramite il parametro /command, consentendo di stabilire una sessione, eseguire un comando e disconnettersi in un unico passaggio.

Ad esempio, utilizza il parametro /command per trasferire un file locale su un host remoto. L’esempio qui di seguito illustra come copiare un file da C:\abc\abc.txt nella directory /tmp dell’host remoto 13.213.61.127.

Il parametro /command richiede due argomenti come stringhe: uno per stabilire la sessione e un altro per l’esecuzione effettiva del comando.

# Trasferimento di file non interattivo usando 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%

Automazione delle attività con WinSCP.com: il parametro /script

Per esigenze di automazione più complesse, il parametro /script in winscp.com consente di eseguire una serie di comandi da uno script. Questa funzionalità è preziosa quando si gestiscono attività ripetitive o operazioni complesse su host remoti.

Per utilizzare il parametro /script nella riga di comando WinSCP, inizia creando un file di script chiamato upload_file_script.txt sul desktop con il tuo editor di testo preferito.

Prepara un file di testo vuoto chiamato a.txt nella directory /tmp del tuo computer remoto.

Crea una directory locale in C:\abc.

Successivo, inserisci i seguenti contenuti nel file upload_file_script.txt e salvatelo. Questo script scarica il file a.txt dalla directory remota /tmp e lo ricarica come new_file.txt.

# Script WinSCP per il trasferimento di file
 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

Esegui questo script utilizzando il parametro /script in WinSCP con il seguente comando:

Utilizza lo switch /ini=nul per evitare a WinSCP di salvare qualsiasi configurazione di sessione all’uscita.

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.
   # Nuova sessione per il caricamento
   Session started.
   /tmp
   C:\abc\new_file.txt       |            0 B |    0.0 KB/s | binary |   0%
   Session closed.

Utilizzo di WinSCP.com per la conversione delle chiavi

WinSCP supporta l’autenticazione basata su password e certificato o autenticazione basata su chiave pubblica. Per utilizzare l’autenticazione basata su chiave pubblica, è necessario un formato di chiave privata compatibile. WinSCP aiuta nella conversione dei formati chiave per la compatibilità.

Per esempio, converti una chiave privata in formato PEM (come quelle da AWS EC2) in un formato compatibile con Putty utilizzando il comando della riga di comando di WinSCP. Il parametro /keygen in winscp.com facilita questa conversione.

  • Applica il parametro /keygen, seguito dal percorso attuale della chiave.
  • Includi il parametro -o per specificare il percorso del file di output della chiave convertita.
  • Opzionalmente, utilizza il parametro -c per aggiungere un commento alla chiave convertita.
.\WinSCP.com /keygen C:\Users\shanky\Desktop\testing.pem -o C:\Users\shanky\Desktop\testing.ppk -c "Converted from OpenSSH format"

Conclusione

Con questa guida completa alla linea di comando di WinSCP, insieme alla Guida GUI di WinSCP, sei ora pronto per sfruttare appieno le capacità di WinSCP. Che si tratti di trasferimenti di file, esecuzione di comandi, esecuzione di script o conversione di chiavi, WinSCP è uno strumento versatile per ogni professionista IT.

Come pensi di integrare WinSCP nel tuo flusso di lavoro? Condividi i tuoi pensieri e le tue esperienze!

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