Server OpenSSH su Windows

Chi necessita di un server SSH su Windows mi segua.

Installazione

Prima di tutto, per chi non ce l’ha, occorre installare Cygwin (http://www.cygwin.com/) e OpenSSH. Cygwin è un ambiente “Unix like” per Windows all’interno del quale è possibile compilare ed eseguire quasi tutti i programmi per Unix/Linux che ci sono in circolazione. Molti programmi, tra cui anche OpenSSH, sono già disponibili come binari precompilati. Dal punto di vista pratico, pensa a Cygwin come ad una distribuzione Linux per Windows: ci sono i pacchetti precompilati, ci sono le relazioni di dipendenza tra i pacchetti, via via vengono rilasciati gli aggiornamenti ai singoli pacchetti etc. L’installazione è molto semplice: si tratta di

  1. Scaricare dal sito di Cygwin il programma di installazione setup.exe
  2. Creare sul proprio PC Windows la cartella per Cygwin, ad esempio C:\cygwin, e copiarci dentro setup.exe appena scaricato
  3. Lanciare setup.exe e seguire le istruzioni a video
  4. Quando viene visualizzata la lista dei pacchetti organizzata in categorie, abilitare l’installazione di OpenSSH così:
    a) aprire la categoria Net;
    b) individuare il pacchetto openssh;
    c) fare click sulla corrispondente voce Skip.
    Comparirà il numero di versione di OpenSSH che si andrà ad installare
  5. Procedere con l’installazione

Tutto il necessario verrà scaricato ed esploso nella cartella C:\cygwin ed infine verrà piazzata sul desktop un’icona con il simbolo di Cygwin. Vai col doppio click!

Configurazione

Una volta effettuato il doppio click, si aprirà una finestra del terminale all’interno della quale c’è ad attenderci la nostra beneamata Bash. L’albero di cartelle all’interno del quale ci troviamo ha come radice (indovina un po’…) C:\cygwin, per cui esiste questa corrispondenza tra il mondo Unix di Cygwin e quello di Windows:

  • / C:\cygwin
  • /usrC:\cygwin\usr
  • /homeC:\cygwin\home
  • /binC:\cygwin\bin
  • etc.

Appena lanciata la shell ha come cartella corrente /home/nomeutente (C:\cygwin\home\nomeutente), come si può verificare facilmente con il comando pwd. Ma l’ambiente Cygwin non è affatto imprigionato nella sola cartella C:\cygwin: il sistema fornisce anche dei mount point per tutte le unità disco presenti. Dare il comando mount per rendersene conto:

$ mount
C:/cygwin/bin on /usr/bin type ntfs (binary,auto)
C:/cygwin/lib on /usr/lib type ntfs (binary,auto)
C:/cygwin on / type ntfs (binary,auto)
C: on /cygdrive/c type ntfs (binary,posix=0,user,noumount,auto)
H: on /cygdrive/h type smbfs (binary,posix=0,user,noumount,auto)
M: on /cygdrive/m type ntfs (binary,posix=0,user,noumount,auto)
N: on /cygdrive/n type smbfs (binary,posix=0,user,noumount,auto)

Quindi, per accedere al disco C: nella sua interezza, è sufficiente spostarsi sotto /cygdrive/c, e via discorrendo.

Per configurare il server OpenSSH è stato predisposto un comodo script da lanciare dalla Bash di Cygwin: ssh-host-config. Lo script fa un po’ di operazioni standard tra cui creare le chiavi crittografiche per il server, creare un utente ad hoc per far girare sshd e installare sshd come servizio di sistema. Io ho lasciato sempre le scelte di default (INVIO, INVIO, INVIO…) e mi sono trovato bene.

Una volta terminato il tutto, occorre lanciare a mano il servizio con ‘net start sshd’, ma solo per la prima volta: d’ora in avanti sshd verrà avviato automaticamente all’avvio di Windows, assieme agli altri servizi.

Ritocchi finali

A questo punto è sufficiente collegarsi da un altro computer (usando PuTTY su Windows oppure il client nativo ssh su Linux) per ritrovarsi proiettati nel mondo Cygwin che vive dentro il PC Windows. Le credenziali da usare (nome utente e password) sono quelle normalmente usate su Windows.

Se non fosse possibile accedere può dipendere dalla configurazione del firewall di Windows, che non lascia passare le connessioni verso sshd: aggiustare il tutto e riprovare.

Advertisements

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...