Passa ai contenuti principali

SSH: Remote host identification has changed

Oggi volevo copiare un file dalla macchina di un mio collega con un collegamento SSH. Dopo aver provato un bel scp mi sono ritrovato questo ameno messaggio di warning nel terminale... il mio vicino di scrivania sta facendo qualcosa di losco!

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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
23:00:21:33:d4:0f:95:f1:eb:34:b2:57:cf:3f:2c:e7.
Please contact your system administrator.
Add correct host key in /home/capitanfuturo/.ssh/known_hosts to get rid of this message.
Offending key in /home/capitanfuturo/.ssh/known_hosts:12
RSA host key for example.com has changed and you have requested strict checking.
Host key verification failed.

Devo ammettere la mia più totale ignoranza del protocollo SSH a meno di sapere che è ritenuto tra i più sicuri visto che usa connessioni cifrate. Dalla versione 4.0 di OpenSSH è stato introdotto questo parametro 'HashKnownHosts yes' nel file di configurazione /etc/ssh/ssh_config. Parametro che forza il client a mantenere traccia degli hostname e degli indirizzi IP delle connessioni effettuate in modo crittografato invece di registrarli in chiaro nel file ~/.ssh/known_hosts.
Alla connessione se la macchina a cui si vuole accedere non è presente nel file known_hosts viene richiesto di accettare la chiave pubblica altrimenti viene confrontata la chiave con quella precedentemente registrata e se è diversa viene mostrato il simpaticissimo messaggio di avviso.

Perchè questo meccanismo?
Potrà sembrare un pò stravagante ma il sistema messo in piedi serve ad aumentare la sicurezza e ad avvisare di possibili attacchi dell'uomo in mezzo. Il client ci sta dicendo che è cambiata la chiave pubblica per quella macchina, cosa che potrebbe essere stata conseguenza di una reinstallazione del sistema, oppure effettivamente si sta trattando di un presunto impostore che sta cercando di sostituirsi alla vera macchina di destinazione

Come possiamo risolvere una volta accertatisi della sicurezza?
Il messaggio di avviso ci viene in aiuto dicendoci la riga alla quale è stata registrata la chiave che dà problemi (Nel mio caso la 12-esima):
Offending key in /home/capitanfuturo/.ssh/known_hosts:12
Per eliminare l'entry basta eseguire da terminale
$ ssh-keygen -R hostname
e riprovare a stabilire la connessione

Post popolari in questo blog

Se excel non aggiorna le formule

Oggi in ufficio è capitata una richiesta particolare. In un documento excel dopo aver eseguito un copia-incolla di una formula non si aggiornavano i risultati nelle celle interessate. Dopo attimi di perplessità dal fondo dell'ufficio il capo ci illumina con una funzione ai più sconosciuta e che ha risolto il problema: il tasto F9. Scusate la mia ignoranza in excel ma questo blog è pensato proprio per appuntare esperienze di vita informatica. Tutto sta nel fatto che i "calcolatori d'un tempo" non disponevano di una adeguata potenza di calcolo e nelle operazioni di copia-incolla si verificavano lunghe attese per l'aggiornamento. La soluzione adottata da MS è stata quella di inserire un'opzione per impedire l'aggiornamento automatico e forzarlo con una combinazione di tasti... il tasto F9!
Combinazioni utili per il calcolo delle formule F9 = calcola le formule modificate dall'ultimo calcolo in tutte le cartelle e fogli di lavoro aperte. MAIUSC + F9 = c…

Riflessioni sull'ordinamento

Gli algoritmi di ordinamento sono da sempre i più gettonati e interessanti dal punto di vista didattico (si veda la complessità computazionale) e funzionale (quasi tutti i programmi hanno almeno una funzione di ricerca). Proprio di questi giorni sono alcuni articoli di Programmazione.it dedicati a questo tema (link).Coding Horror in questo articolo presenta una provocazione molto interessante al di là delle opinioni personali:

The default sort functions in almost every programming language are poorly
suited for human consumption.
L'articolo pone l'attenzione sulla differenza tra l'ordinamento alfanumerico e quello ASCII solitamente usato nei metodi nativi dei linguaggi. Il discorso si ampia se poi pensiamo banalmente alla differenza tra Windows e GNU/Linux che è case sensitive.
Spesso i sistemi operativi e i linguaggi di programmazione realizzano ordinamenti rispettando l'ordine della tabella di codifica ASCII e non l'ordinamento naturale della lingua. I commenti a se…

Timeline dei Linguaggi di programmazione

O'Reilly ha reso disponibile per tutti gli appassionati un interessante poster in formato pdf in cui vengono riassunti 50 anni di storia dei linguaggi di programmazione.Il poster mostra una timeline colorata nella quale sono evidenziate le principali derivazioni tra i vari linguaggi... da vedere
http://www.oreilly.com/news/graphics/prog_lang_poster.pdf



fonte programmazione.it