Come creare e scambiare le chiavi ssh per l’autenticazione

ALTRO, APPUNTI, TUTORIAL

Dite la verità, quante volte avreste voluto accedere ad un sistema remoto  via ssh senza dover inserire le credenziali, anche perché capita di non ricordarsele e la cosa peggiore e lasciarle scritte da qualche parte.  Bene in questo articolo vedremo come fare. Ricordiamo giusto qualche concetto: ssh è un protocollo di connessione cifrato che consente accessi sicuri su connessioni non protette e come tale prevede l’uso di una 

  • chiave pubblica usata dal server su cui si desidera connettere
  • chiave privata usata dal  client

Vediamo come semplificarci la vita per creare ed usare la coppia di chiavi.

I passi che bisogna fare sono:

Generazione delle chiavi con ssh-keygen

ssh-keygen -f <path del file idChiave>

Utilizzo di ssh-copy-id per copiare la chiave pubblica sul server

ssh-copy-id -i <path del file idChiave> username@address

Creare e configurare un file config SSH: inserire in ~/.ssh/config

Host <nomeServer>
   Hostname <ipAddress>
   User <username>

Usare ssh-agent per archiviare la passphrase della chiave privata

ssh-add <path del file idChiave>

Connetttersi al server per provare la configurazione

ssh <nomeServer>

ed ecco fatto siete connessi senza dover inserire le credenziali.

Vi lascio un piccolo script, da migliorare, che vi consentirà di creare, al volo, le chiavi e di impostare  la configurazione.

#!/bin/sh
echo -n "Inserire Hostname/ip del server:" 
read ip
echo -n "Inserire User:" 
read user
echo -n "Sceglire Nome menemonico del Server:" 
read nome

ssh-keygen -f ~/.ssh/$nome
ssh-copy-id -i ~/.ssh/$nome $user@$ip
echo "Host $nome" >> ~/.ssh/config
echo " Hostname $ip" >> ~/.ssh/config
echo " User $user" >> ~/.ssh/config
ssh-add ~/.ssh/$nome
Se vuoi farmi qualche richiesta o contattarmi per un aiuto riempi il seguente form

    0 0 votes
    Article Rating
    Subscribe
    Notificami
    guest
    0 Commenti
    Inline Feedbacks
    View all comments
    0
    Would love your thoughts, please comment.x