Eccomi per la nuova avventura: dopo secoli ho riabilitato la mia chiave privata crittografata per accedere ai server web che gestisco e cerco di non scordare come ho fatto. Per prima cosa, sto parlando di un sistema di autenticazione a server remoti che mi evita di ricordare (o peggio, appuntare) le complicatissime password che i gestori dei server che ho in amministrazione mi impongono. In pratica stabilisco con i server una connessione sicura ssh e uso una chiave crittografata per entrare.
Esistono numerosi siti che spiegano la procedura, ma spesso danno per scontato che il vostro computer di lavoro sia anch’esso una macchina ‘nix. Io invece lavoro su windows, e anche se dalla versione 10 è diventato possibile installare un Windows subsistem Linux a piacimento che potete usare un po’ come se fosse la vostra finestra di comando (cmd) o la vostra PoweShell, fino ad oggi per collegarsi via terminale ad un server remoto (generalmente il server web) con una connessione ssh l’unica strada era PuTTY. Non fatevi ingannare dallo stile vecchio stampo del sito e dall’aspetto amatoriale, parliamo di un programma che da vent’anni è di fatto IL modo di collegarsi via telnet e ssh a Unix e Linux al punto che la Commissione europea ha sponsorizzato la ricerca di bug per ridurne la vulmerabilità!
Non ho idea di quando io abbia scaricato per la prima volta PuTTY, probabilmente attorno ai primi anni del XXI secolo 😉 , ma per molto tempo gran parte dei componenti presenti nel pacchetto completo sono rimasti per me degli inutili orpelli… che fortunatamente occupavano pochi byte. Questo fino a due anni fa, quando lo spostamento del server di Engramma su una nuova macchina virtuale mi ha lasciato con una password di 20 caratteri imposta dal gestore che francamente, pur avendola ormai memorizzata (mi serve ad ogni sudo) mi ha obbligata a cercare di capire se potevo fare di meglio. E, ovviamente, potevo.
Il mio server basato su sistema Debian infatti prevedeva di default l’autenticazione con chiave RSA, ma le istruzioni non erano chiare per un utente Windows. Dopo vari tentativi, ho finalmente capito qualcosa che non mi era subito parso evidente.
- la chiave RSA (iniziali dei creatori Rivest–Shamir–Adleman) è una mia chiave personale. Non ha nessuna connessione con il server in cui la userò, almeno finché non la autorizzerò su quel server. Quindi non create una chiave per il vostro server, ma un sistema di chiave e serratura per voi.
- La chiave RSA è fatta di due parti, una chiave privata che tenete voi e una pubblica che potete mettere nei server a cui volete collegarvi. La chiave pubblica NON può essere usata per generare le informazioni della chiave privata, ma può solo verificare che sia corretta. In pratica è come mettere nel server una vostra porta privata (chiave pubblica) ed usare la vostra chiave (chiave privata) per aprire.
- Ovviamente le chiavi aprono sempre e comunque, quindi la chiave privata va tenuta al sicuro. Da una chiave privata potete riceare la chiave pubblica! Buona norma è quella di munirla di una password che eviti che chi ne viene impropriamente in possesso possa usarla a vostra insaputa. Un po’ come le password che vi servono per usare la firma digitale o altro. In pratica state mettendo la vostra chiave in un cassetto chiuso a chiave.
- Potete usare la porta quante volte volete, se il formato di crittografia corrisponde agli standard impostati nel sistema finale (per esempio, mentre seguivo le guide, non mi sono accorta che il mio sistema voleva delle chiavi RSA da 2048 bit… e per un pezzo non ho capito perché non funzionava.
Se avete un sistema operativo Linux potete tranquillamente seguire le istruzioni della pagina Debian, ma se usate Windows e PuTTY? ecco che finalmente scopro di avere da anni un generatore di chiavi, PuTTYgen, che attende solo di essere usato!
Per generare la vostra accoppiata, se i parametri di sicurezza elencati in basso vi soddisfano, non vi serve altro che cliccare Generate e muovere il mouse per generare le informazioni random…
E finalmente vi troverete con le vostre chiavi pronte per essere salvate (non preoccupatevi per la mia sicurezza, questa è tutta per voi!):
A questo punto siete quasi pronti per salvare le vostre chiavi. Per riconoscere la chiave in modo più semplice, è utile cambiare il commento (Key comment) in qualcosa di più immediato per ricordare per quale scopo è stata generara. La passphrase è ovviamente la password di sicurezza che evita che qualcuno possa entrare in possesso della vostra chiave ed usarla a vostra insaputa. Solo dopo aver settato queste informazioni salvate la chiave pubblica (Save public key) e, soprattutto, la chiave privata (save private key).
PuTTYgen salva le chiavi private con una speciale estensione .ppk e non attribuisce nessuna estensione alle chiavi pubbliche, cercate per la vostra memoria di fare in modo di sapere quale sia accoppiata con l’altra (miachiave.ppk con miachiave_pub per esempio). A questo punto le varie istruzioni dicono di caricare il file della chiave pubblica sul vostro server e accodarlo al file authorized_keys che avrete creato nella vostra home directory. Tentazione che è venuta anche a me oggi quando ho cercato di usare il file della chiave pubblica che avevo nel mio pc su un nuovo server… salvo vedermi richiesta la password. Il problema è che il file che PuTTY salva come backup, pur contenendo anche il testo della chiave corretto, lo mette con degli a capo che lo rendono inutile. Se guardata la vostra finestra vedrete che nella parte alta c’è una casella, che al momento in cui finite di generare le chiavi è evidenziata, con scritto “Public key for pasting…”. Ecco, quella è la chiave che serve al vostro server! Caricarla è semplice: per prima cosa vi collegate al vostro server con PuTTY con nome utente e password. Il nome utente è quello di un utente non root. Al solito sarete nella vostra home directory. Se ci siete già dentro e volete tornare alla home vi basta dare il comando cd senza scrivere nulla. A questo punto, se non ci sono altre chiavi, seguite la solita procedura di tutte le guide:
mkdir ~/.ssh chmod 700 ~/.ssh cd ~/.sshora invece di caricare file, fate copia della chiave nella finestra di PuTTYgen (CTRL+C), poi tornate nella sessione online e create con il vostro editor il file necessario. Io sono vecchio stile per cui per me i comandi saranno:
vi authorized_keys i #attiva l'inserimento #tasto destro nella finestra per incollare il testo copiato ESC #esco da modalità inserimento :wqA questo punto dovete procedere come negli altri esempi online
chmod 600 authorized_keyse potete anche chiudere la sessione PuTTY.
A questo punto inizia la gestione della chiave privata: fra i vari programmi nella cartella PuTTY dovreste trovare Pageant, l’icona del PC con il cappello. Se ci cliccate sopra non sembra succedere nulla, ma una nuova icona si aggiunge nella vostra barra delle applicazioni di Windows:
Se ci cliccate sopra col tasto destro troverete l’opzione “add keys” che vi farà cercare la chiave .ppk che avete salvato prima. Caricandola sarà chiesta la password, e la domanda verrà ripetuta ogni volta che avviate Pageant (tenetelo presente se decidete di avviarlo in automatico col pc 😉 ). A questo punto potete modificare anche la sessione salvata con cui vi collegate normalmente al server (perché ovviamente AVETE una sessione salvata!). Per poter usare l’autenticazione RSA dovete caricare la sessione che vi interessa e poi nella categoria di destra spostarvi al punto “Connection” e poi dentro “Data”. Qui dove è scritto “Autologin username” inserite quello che usate per collegarvi. Poi spostatevi nel nodo “SSH” e cliccate su “Auth”, dove potrete selezionare la vostra chiave privata nuovamente per aggiungerla alla sessione.
Prima di cliccare “Open” ed avviare la sessione con l’autenticazione RSA, tornate su “Session” in modo da poter salvare la sessione. A questo punto cliccando su “Open” dovreste entrare senza che vi venga chiesta la password. Al massimo vi verrà chiesta la password di protezione della chiave privata. Ma la parte più bella è che se avviate Pageant, dopo la prima richiesta di password, potrete trovare le vostre sessioni PuTTY salvate con il tasto destro sotto “Saved sessions”. Questo vuol dire che potrete aprire una sessione PuTTY con un solo click senza più mettere password finché non chiudete Pageant o il pc!
Non so se vi interessi minimamente la cosa, ma siccome sono certa che per la prossima volta che mi servirà avrò dimenticato un pezzo, me lo salvo online e così poi so dove cercarlo!