Tra gli ultimi articoli

Accesso diretto tra server tramite ssh key

linux-serversPotrebbe capitare di ritrovarci a voler fare interagire due server a livello di ssh, questo potrebbe essere un problema perchè molti software non hanno la possibilità di inserimento della password di default (cosa oltretutto non sicura da usare). Possiamo però utilizzare una chiave per dire al server A che il server B è sicuro e può farlo accedere senza l’uso di una password.

Immaginiamo per esempio di voler utilizzare rsync da crontab, senza l’utilizzo di una key non potremmo utilizzarlo in remoto nemmeno utilizzando uno script sh con la password.

Passo 1. Creazione di una chiave di sicurezza nel nostro server B.  (Server da cui sarà poi effettuato l’accesso)

Per creare una key da terminale digitiamo ssh-keygen , ci chiederà in che file vogliamo salvare la key. E lasciamo tutto di default premendo sempre invio fino alla generazione della chiave (random). Troveremo la nostra key in /root/.ssh/id_rsa.pub

Passo 2. Copiamo la chiave sul server A.

La chiave è in file di testo leggibile, è una ‘password’ random molto lunga, possiamo aprire il file id_rsa.pub e copiarne tutto il contentuto sul file authorized_keys presente nella cartella /root/.ssh (se non ci fosse creiamolo noi).

Passo 3. Testiamo se funziona.

Accediamo da terminale al server B, e digitiamo ssh 1.1.1.1 (dove 1.1.1.1 è il numero ip del server A). Se abbiamo eseguito tutto correttamente ci ritroveremo direttamente nel server A senza richiesta di una password.

Esempio di utilizzo.

Possiamo a questo punto sfruttare questo utilizzo per esempio con rsync. Infatti per avviarlo non sarà più necessario autenticarsi ma basterà lanciare  rsync -ra Utente@IP:/home/daCopiare /home/Ricevente/ , senza inserire una password la folder daCopiare sarà sincronizzata dentro /home/Ricevente.

Potrebbe succedere che la chiave non sia accettata perchè il file id_rsa.pub non è protetto, vi basterà cambiare i permessi in 400 e la chiave sarà memorizzata.

About Stefano Berardi

Stefano Berardi
''non sono superman... I'm not superman..."