opensshMai capitato di dover eseguire comandi remoti su una macchina windows, senza dovervi accedere o altro?
Si lo so esitono i PStools e nello specifico PSexec. Ma in quasi tutti i casi necessitano di login, user e password in chiaro sulla stringa e l'utente che esegue deve essere admin della macchina sorgente.
Spesso si è al limite di queste cose è qui come succede per i sistemi linux ci viene in aiuto SSH.
Ssh permette un login mediante lo scambio di chiavi pubbliche e private il che permette di autenticare l'accesso anche senza uso di password.
Useremo questa tecnica per far eseguire da una postazione windows (lato client) un comando (un semplice script .bat) residente su un'altra (lato server) senza l'inserimento di user e password e senza interattività, un pò quello che si farebbe tra due macchine linux.

Cosa serve:
- Freesshd (http://www.freesshd.com/)
- Putty / Plink / Puttygen  (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html)

Preparazione lato server: (video)

  • Installare freesshd, facendo attenzione ad accettare la creazione delle chiavi private e l'installazione di Freesshd come servizio di windows
  • Avviare la console di configurazione che vedrete sul desktop (se avviato come servizio potreste vedere la "X" rossa sulla GUI, mentre se avviato come stand-alone invece è gestibile direttamente - su alcune versioni di windows almeno accade ciò...)
  • Scheda "Automatic updates": Rimuovere il flag sul controllo aggiornamenti
  • Scheda "Authentication":
    "Password authenticaton" = disable
    "Public key authentication" = required (si accettano solo i certificati e non user e pass)

Ora creiamo l'utente e convertiamo i certificati per Putty come segue:

  • Apriamo freesshd e aggiungiamo un utente impostandolo come "Public key (ssh only)" e selezionando il tipo di accesso "shell"
  • Generiamo il file delle chiavi con il generatore di default di freesshd: RSA key -> new
  • Apriamo puttygen ed importiamo il file generato e lo convertiamo: "conversions" and "import"
  • Selezionare, copiare e salvare la chiave importata in "key window" in un file con lo stesso nome dell'utente precedentemente creato e senza estensione
  • Il file va salvato nella cartella dove sono contenute le chiavi di freesshd devinite nell'opzione "Public key folder" (di default c:\programmi\freesshd)
  • Sempre da puttygen mediante il pulsante "save private key" salvare il file .ppk che verra poi importato da putty

Preparazione lato client - Generare il profilo di sessione:

  • Avviare Putty
  • Creare la sessione inserendo hostname/ip nella sezione "Session" (1)
  • Nella sezione "Ssh" in "remote command" indicare il comando da eseguire al login con il percorso completo (2)
  • Nella sezione "Auth" indicare la posizione del certificato .ppk (3)
    putty
  • Ritornare su session, dare un nome alla sessione e salvare
  • Provare il funzionamento
  • Se tutto viene eseguito correttamente putty direttamente non ci serve più, i dati di sessione vengono salvati nel registro di windows
  • Se necessario eliminare/nascondere putty
  • Creare un link sul desktop che carica il profilo mediante "plink.exe" : plink.exe -load "puttyprofilename"

Finito!

 

You have no rights to post comments

Loading feeds...

Logo Design Company