Punto informatico Network
Canali
Chiave, key, ssl, crittazione, crittografia, sicuro, sicurezza

Autenticazione mediante chiave asimmetrica su server SSH

26/01/2009
- A cura di
Zane.
Tecniche Avanzate - Stanchi di digitare sempre la password per accedere al vostro server SSH? volete automatizzare davvero alcune operazioni comuni con il server remoto? Seguite le indicazioni di questa guida e potrete usare una comoda chiave di autenticazione asimmetrica, che renderà l'uso della password una tecnica obsoleta. Quindi, perché non disabilitarla del tutto e migliorare la sicurezza?

Download

Tag

Passa qui con il mouse e visualizza le istruzioni per utilizzare i tag!

chiave (1) , ssh (1) , server (1) .

Valutazione

  •  
Voto complessivo 5 calcolato su 362 voti
Il pezzo che stai leggendo è stato pubblicato oltre un anno fa. AvvisoLa trattazione seguente è piuttosto datata. Sebbene questo non implichi automaticamente che quanto descritto abbia perso di validità, non è da escludere che la situazione si sia evoluta nel frattempo. Raccomandiamo quantomeno di proseguire la lettura contestualizzando il tutto nel periodo in cui è stato proposto.

Odio profondamente le password. Nonostante il metodo "Come scegliere e organizzare le password" mi aiuti a tenere un minimo sotto controllo le cose, ed il sempre ottimo "KeePass Password Safe" contribuisca a non farmi dimenticare le credenziali d'accesso importanti, detesto comunque dover inserire tali dati all'interno del programma opportuno. Di più: la procedura di autenticazione è spesso interattiva, e le operazioni realizzate automaticamente via scripting ne risentono negativamente.

Per questi ed altri motivi, non esito, quando possibile, ad abbracciare soluzioni alternative.

Fortunatamente, il protocollo SSH offre, oltre alla già citata autenticazione mediante password, anche la possibilità di farsi riconoscere dal server presentendo, in modo automatico, una chiave di accesso segreta.

In questo articolo vedremo come adottare questo sistema nel nostro ambiente lavorativo.

L'idea alla base

Quello che andremo ad implementare è un'autenticazione mediante chiave asimmetrica.

Per una trattazione più completa sull'argomento vedasi l'articolo "Crittografia a chiave pubblica": per la compresone della trattazione corrente, basti comunque sapere che creeremo due chiavi.

Una, la componente "pubblica", fungerà da "lucchetto" e risiederà sul server.

L'altra dovrà essere invece custodita gelosamente sul client che tenterà l'accesso.

Ad ogni tentativo di log-in, il server presenterà il proprio lucchetto e richiederà al client di utilizzare la propria chiave per aprirlo: se il client non avrà tale informazione, non potrà accedere al server.

Client_server_lock.jpg

Pronti ad adottare questo sistema? Si parte.

Generare la chiave

La prima cosa da fare è generare la coppia di chiavi sul computer client.

Lanciate l'ambiente Cygwin, quindi impartite il comando ssh-keygen -t rsa

Ssh-keygen_1.jpg

La procedura chiederà ora dove desiderate salvare i due file che costituiranno le chiavi. Accettate il percorso proposto, premendo semplicemente invio (confermate la volontà di sovrascrivere, se richiesto).

Ora, verrà richiesta una frase chiave (passphrase): poiché l'obbiettivo è proprio quello di connettersi senza bisogno di specificare la password, premete semplicemente invio, e quindi nuovamente per confermare.

Non preoccupatevi troppo: nessun altro client riuscirà ad accedere al server senza la chiave privata!

Ssh-keygen_2.jpg

Il sistema elaborerà ora qualche istante: terminata l'operazione, le due chiavi saranno pronte.

Trasferire la chiave pubblica

Dovrete ora trasferire al server remoto la componente "pubblica" della chiave appena generata.

Per prima cosa, creiamo l'opportuna cartella sul server: poiché abbiamo SSH già in esecuzione su di esso, possiamo agire dal nostro client, lanciando il comando ssh Zane@srv-rettore "mkdir ~/.ssh/" ed immettendo la password di accesso quando richiesto (nota: il carattere "tilde" (~) si immette tenendo premuto Alt e digitando i numeri 1-2-6 sul tastierino numerico della testiera. In caso l'ambiente Cygwin non accettasse tale carattere, lanciate il comando dal tradizionale prompt di Windows).

Al solito, sostituite a Zane lo username impiegato sul server, ed a srv-rettore il reale nome o indirizzo della vostra macchina remota.

Potrebbe accadere che venga restituito un errore File exists. nulla di grave: significa semplicemente che la cartella esisteva già. Ignorate e proseguite tranquillamente.

Completata anche questa fase, procedete a trasferire la chiave pubblica al server remoto: per farlo, utilizzeremo il già descritto comando SCP. Inserite scp ~/.ssh/id_rsa.pub Zane@srv-rettore:~/.ssh/authorized_keys eseguendo gli opportuni adattamenti e digitando, per l'ultima volta!, la password associata all'utente.

Verificare

Per verificare che tutto abbia funzionato a dovere, sarà sufficiente accedere al server con il comando ssh Zane@srv-rettore: se è tutto in ordine, l'accesso sarà immediato, senza necessità di inserire alcuna password.

Le possibilità a questo punto diventano numerose: potrete ad esempio lanciare qualsiasi comando sul vostro server via SSH senza aver più bisogno di specificare la password, oppure trasferire file con un semplice doppio click, mediante script che funzionano senza alcun bisogno di intervento da parte dell'utente.

Come accettare connessioni anche da altri PC

Ora, abbiamo autorizzato il primo client ad accedere al sistema senza password. Ma come fare per consentire anche ai PC degli altri membri del team di fare lo stesso?

Per prima cosa, ripetete, sul PC del primo collega, il procedimento illustrato nel paragrafo "Generare la chiave".

Quindi caricate la chiave pubblica così generata in file temporaneo sul server, utilizzando il comando scp ~/.ssh/id_rsa.pub Zane@srv-rettore:~/.ssh/chiave_temporanea

Accodate ora la chiave temporanea del nuovo PC al file delle chiavi: per farlo, è necessario impartire il comando ssh Zane@srv-rettore "cat ~/.ssh/chiave_temporanea >> ~/.ssh/authorized_keys" .

Ora anche questo secondo PC dovrebbe aver accesso al server senza richiedere la password: eliminate quindi il file temporaneo, tramite ssh Zane@srv-rettore "rm ~/.ssh/chiave_temporanea".

Generate la chiave, caricatela e accodatela da ogni altro PC del vostro gruppo di lavoro che desidrate far accedere al server senza bisogno di password.

Pagine
  1. Autenticazione mediante chiave asimmetrica su server SSH
  2. Pagina 2
  3. Pagina 3
  4. Pagina 4

 

Segnala ad un amico

Tuo nome Tuo indirizzo e-mail (opzionale)
Invia a:
    Aggiungi indirizzo email
    Testo

    © Copyright 2024 BlazeMedia srl - P. IVA 14742231005

    • Gen. pagina: 0.17 sec.
    •  | Utenti conn.: 35
    •  | Revisione 2.0.1
    •  | Numero query: 43
    •  | Tempo totale query: 0.01