Nel corso di questa guida abbiamo analizzato in toto il protocollo SSH e visto le potenzialità di OpenSSH. A volte, però, le soluzioni più semplici e immediate sono le migliori. In questa lezione, a conclusione della nostra guida, presenteremo un semplice e minimale client SSH gratuito per Microsoft Windows, denominato PuTTY.
Il punto di forza di questo client risiede proprio nel fatto che non prevede una procedura d'installazione da seguire, non presenta una curva di apprendimento ripida e, in molti casi, non è necessaria nemmeno alcun tipo di configurazione. Il software è stato scritto da Simon Tatham che l'ha rilasciato gratuitamente insieme ad un manuale utente dettagliato, consultabile al seguente indirizzo.
Dato che il manuale utente è molto completo e di semplice lettura, ci concentreremo sugli usi più comuni di PuTTY.
Download e installazione
L'installazione di PuTTY è semplicissima. Basta scaricare l'eseguibile putty.exe ed eseguirlo. Questa caratteristica è particolarmente utile se abbiamo bisogno di utilizzare il software in modalità portable.
Uso di base del client
Per iniziare, basta fare doppio clic su putty.exe
. Verrà visualizzata la finestra di configurazione di PuTTY mostrata nella figura in basso:
Per collegarci a un server SSH, individuiamo la casella "Host Name (or IP address)", inseriamo il nome host del server remoto e clicchiamo sul pulsante "Open". A questo punto verrà visualizzata una finestra di terminale che ci richiederà il nome e la password di accesso. Supponendo che non subentrino particolari errori, PuTTY stabilirà una sessione di login sicura con il server.
PuTTY non supporta solamente il protocollo SSH, ma anche protocolli meno sicuri come Telnet e Rlogin. Per evitare spiacevoli malintesi, in modo da assicurarci che le nostre connessioni adoperino il protocollo SSH, bisogna selezionare la voce "SSH" nella finestra di dialogo iniziale di configurazione di PuTTY, come mostrato all'interno dell'area "Connection type".
Plink, il Console Client di PuTTY
PuTTY è dotato di un secondo client di terminale SSH, nominato Plink, che ricorda il client SSH di OpenSSH e di Tectia. Per un avviare questo terminale basta digitare tramite Prompt dei Comandi di Windows:
C:\>plink vito@server.html.it
Questo comando ci connette via SSH a server.html.it
, accedendo come utente remoto con l'user vito
.
Plink è più adatto per un uso non interattivo, ad esempio per impostare tunnel per il port forwarding, o per l'esecuzione all'interno di batch.
Il Prompt di Comandi di Windows non è un emulatore di terminale particolarmente valido e a questo proposito il client Plink ha molte opzioni da riga di comando, simili a quelle di SSH. L'elenco di
tali opzioni è mostrato di seguito:
Comando | Descrizione |
---|---|
1 | Permette di utilizzare il protocollo SSH-1 |
2 | Permette di utilizzare il protocollo SSH-2 |
C | Permette di utilizzare la compressione dati per la connessione SSH |
-i keyname | Usa la chiave privata di nome keyname |
-l username | Specifica il nome utente remoto |
-load session | Carica le impostazioni da una sessione salvata |
-m filename | Legge i comandi remoti dal file filename |
-pw P | Usa la password P |
-P port | Usa la porta TCP port per connettersi al server SSH remoto |
-s | Usa un sottosistema SSH |
-t | Alloca uno pseudo-terminale (pty) |
-T | Non alloca uno pseudo-terminale (pty) |
-v | Verbose mode |
V | Visualizza la versione del programma |
Eseguire comandi remoti
Invece di creare una sessione SSH tramite PuTTY o Plink, è possibile eseguire un singolo comando a scelta, per poi chiudere immediatamente la connessione con il server. Con Plink questa azione è più semplice: basta aggiungere il comando remoto alla riga di comando di Plink. Ad esempio, per eseguire il comando ls
(elenco dei file su una macchina Linux remota che esegue un server SSH), possiamo digitare:
C:\>plink vito@server.html.it ls
e otterremo il risultato desiderato.
Con PuTTY il procedimento è leggermente più macchinoso ma comunque semplice. Rechiamoci nella finestra di dialogo di configurazione di PuTTY e selezioniamo "Connection -> SSH" e sulla input box scriviamo il comando che vogliamo eseguire. Cliccando sul pulsante in basso "Open" eseguiremo il comando sul server remoto.
Trasferimento File
La suite PuTTY comprende due programmi per copiare i file in modo sicuro tra macchine remote: PSCP e PSFTP. PSCP è un programma non interattivo simile a scp, mentre PSFTP è un programma interattivo ispirato all'FTP.
Il client pscp
di PuTTY serve a copiare file in modo sicuro tra le macchine, proprio come scp
di OpenSSH e Tectia. Come scp
, anche pscp
non è interattivo. La sintassi di PSCP è quasi identica a quella di scp
. I file remoti sono referenziati da:
[user@]host:percorso_file
dove user
è il nome utente remoto, host
è il nome host remoto e path
è il percorso della cartella del file in questione.
PSCP è in grado di copiare file tra computer in modo sicuro, ma l'interfaccia utente non è interattiva. Se preferiamo un'interfaccia simile a quella di un FTP, dobbiamo adoperare psftp
, il programma interattivo di PuTTY per il trasferimento di file. Per avviare una sessione di copia di file con il server del computer remoto, dobbiamo digitare:
C:\> psftp server.html.it
login as: vito
Using username "vito".
vito@server.html.it's password:
Remote working directory is /home/vito
psftp>
Il prompt psftp>
indica che PSFTP è pronto ad accettare comandi. I comandi da adoperare in questo prompt sono simili a quelli FTP e quindi per trasferire un file dal computer locale a quello remoto basta digitare:
psftp> put myfile
o, per copiare un file locale di nome myfile
, sul server remoto con il nome remotefile
:
psftp> put myfile remotefile
Che è equivalente al comando PSCP:
C:\> scp myfile server.html.it:remotefile
Nel verso opposto, per trasferire i file dal server remoto alla macchina locale, possiamo utilizzare il comando get
:
psftp> get remotefile
psftp> get remotefile myfile
Per un elenco completo dei comandi possiamo digitare help
, oppure, per avere maggiori informazioni circa l'uso di uno specifico comando, possiamo digitare il nome del comando preceduto da help
(ad esempio, help put
). Purtroppo PSFTP non include i comandi mput
e mget
, utili per trasferire molti file contemporaneamente.
Conclusioni
Come abbiamo visto PuTTY è un piccolo e utile client SSH per Windows (è disponibile anche per Linux ma nei sistemi UNIX consigliamo di utilizzare quello nativo).
Il suo vantaggio principale è la semplicità: basta infatti scaricarlo per iniziare a usarlo. Il manuale mostra numerose funzionalità che ne potenzia sicuramente l'utilizzo e favorisce configurazioni particolari per gli utenti più esigenti.