Author Topic: Automazione con ssh e disabilitazione della chiave RSA  (Read 314 times)

Whitenoise

  • Administrator
  • Jr. Member
  • *****
  • Posts: 54
    • View Profile
    • Email
Automazione con ssh e disabilitazione della chiave RSA
« on: February 08, 2010, 08:29:34 pm »
Spesso si presenta la necessità di fare dei deploy automatizzati di VPS con configurazioni molto simili tra di loro ma non identiche. Preparare diverse immagini per ogni sistema può essere gravoso, soprattutto se si inizia a parlare di 10+ immagini diverse e magari basate su distribuzioni diverse. Una soluzione veloce ed efficace è creare degli script che subito dopo l'installazione della vps vi si collegano tramite ssh ed eseguono i dovuti comandi.

Si presenta però uno problema con l'autenticazione ssh nel caso in cui vengano installati  diversi sistemi sulla stessa VPS in sucessioni. L'errore tipico che si ottiene è il seguente:

Code: [Select]
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
dc:38:91:41:de:47:83:52:7c:f4:2d:44:3b:41:ff:e1.
Please contact your system administrator.
Add correct host key in /root/.ssh/known_hosts to get rid of this message.
Offending key in /root/.ssh/known_hosts:7
Password authentication is disabled to avoid man-in-the-middle attacks.
Keyboard-interactive authentication is disabled to avoid man-in-the-middle attacks.
Permission denied (publickey,password).

In sintesi il problema è dovuto al fatto che sulla VPS è presente una chiave crittografica diversa da quella conosciuta dal nostro sistema client, in quanto sul server virtuale è stato reinstallato il demone ssh.

Vi sono 2 soluzioni.

1. Individuare la linea che dice:
Code: [Select]
Offending key in /root/.ssh/known_hosts:7
Il numero finale indica che il problema sta alla riga 7. Molto astutamente possiamo eliminarla con il seguente comando:

Code: [Select]
sed -i 7d ~/.ssh/known_hosts
2. Possiamo passare nel modo seguente due opzioni particolari al comando ssh:  StrictHostKeyChecking e UserKnownHostsFile

Code: [Select]
ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no root@vps
Fondalmentalmente quello che succede è che con UserKnownHostsFile indichiamo di salvare la nuova key in /dev/null, facendo credere a ssh che si tratti di un nuovo file vuoto, e con StrictHostKeyChecking ordiniamo a ssh di accettare e salvare automaticamente le nuovi chiavi.

Ora che abbiamo spiegato questo piccolo trucchetto ci rimane solo da capire come bypassare l'inserimento manuale sella password. Nella prossima puntata.
« Last Edit: February 08, 2010, 10:49:20 pm by Whitenoise »