On 03/25/2014 08:28 PM, operativa wrote:
allora ho copiato il contenuto della chiave pubblica dentro authorized_keys del raspberryora quando mi collego dal portatile al raspberry mi dice: The authenticity of host '192.168.0.3 (192.168.0.3)' can't be established. ECDSA key fingerprint is 04:71............... Are you sure you want to continue connecting (yes/no)?mettendo yes mi chiede password e mi collego,,, sul portatile in .ssh crea un file known_hostsnulla a che fare con la mia chiave privata credo....
Quello che vedi mi pare corretto. Per capire quanto ti appare, leggi oltre. Il tuo messaggio contiene 3 concetti diversi, quindi la mia risposta e' in 3 parti. Prima parte. il meccanismo della chiave pubblica e privata lo utilizzi tu comeutente per autenticarti su un computer a cui ti connetti (il raspberry pi in questo caso).
Non e' l'unico caso in cui viene utilizzato questo meccanismo. Anche il computera cui ti connetti utilizza lo stesso meccanismo per identificarsi a te e darti modo di
verificare che ti stai connettendo al tuo raspberry pi e non a un altro computerche potrebbe essersi intrufolato maliziosamente nella tua rete e avere ottenuto l'ip che tu credi sia quello del raspberry pi. Per questo motivo, quando ssh (server) e' installato sul raspberry pi, viene generata una coppia di chiavi pubblica e privata *di sistema* che servono appunto a permetterti di vericare l'identita del computer a cui ti stai collegando. Le chiavi si sistema le puoi vedere (sul raspberry pi) in /etc/ssh/ . Dovresti vedere:
--- ssh_host_dsa_key ssh_host_dsa_key.pub ssh_host_ecdsa_key ssh_host_ecdsa_key.pub ssh_host_rsa_key ssh_host_rsa_key.pub ---- che sono le coppie di chiavi pubbliche/private create con diversi algoritmi crittografici (dsa, ecdsa, rsa). La prima volta che ti connetti al raspberry pi, il tuo laptop non conosce la macchina a cui si sta collegando, ovvero non ne conosce la chiave pubblica (quella di sistema) e quindi chiede a te di verificarla "a mano". Per aiutarti in questo a schermo vedi un riassunto (detto fingerprint) della chiave pubblica di sistema del raspberry pi: "04:71...". Per verificarla e' necessario che tu sia sul raspberry e digiti ssh-keygen -l -f /etc/ssh/ssh_host_ecdsa_key.pub (ssh_host_ecdsa_key.pub dovrebbe essere il file giusto visto che nel messaggio che hai scritto c'e' "ECDSA key fingerprint is..."). Oppure, piu' semplicemente, quando ti appare il messaggio "The authenticity of host '192.....", digita "yes" senza controllare, come fanno la maggior parte delle persone - me incluso. Ma nota che e' un comportamente sbagliato in generale. Seconda parte. a questo punto ssh ti chiede una password. Se hai propagatocorrettamente la tua chiave pubblica dal laptop al raspberry pi, allora la password che
ti viene chiesta NON e' quella dell'utente sul raspberry pi. Questa password e' quella che protegge chiave privata che hai generato sul tuo computer. Quando hai create la tua chiave pubblica e privata, con ssh-keygen, ti e' stato richiesto di proteggere la chiave privata con una password, se volevi. Lo hai fatto? Se si, allora quella e' la password che ora ti viene chiesta quando ti colleghi via ssh al raspberry pi. Nota che non e' il raspberry pi a chiedertela, ma il tuo computer perche' per autenticarti sul raspberry pi deve momentaneamente utilizzare la tua chiave privata, e se e' protetta da password non puo' far altro che chiederti quella password. Molti non mettono una password sulla chiave privata. In generale e' ovviamente sbagliato. (Se non hai messo una password sulla chiave privata, allora non capisco il messaggio che vedi a schermo) Terza parte. Dopo che finalmente la connessione ssh ha avuto successo, il tuo client ssh (sul laptop)_ memorizza ip e fingerprint del raspberry pi e lisalva in known_hosts, cosi' la prossima volta non ti chiedera' di verificare l'identita
di quel computer (vedi prima parte). Quindi quello che leggi in known_hosts non ha a che fare con la tua chiave pubblica/privata. Nota: i dati nel file known_hosts non sono in chiaro, perche' altrimenti chi riesce a leggerti/copiarti quel file saprebbe subito a quali computer ti colleghi e magari, se riesce a copiarti la tua chiave privata senza password (.ssh/id_rsa), puo' pure collegarsi a quei computer... senza digitare la password e da ovunque si trovi! Questo e' un altro motivo per cui il contenuto di known_hosts appare oscuro. Per concludere, penso che quello che osservi a schermo sia tutto corretto. Se volevi evitare del tutto di password via ssh, allora non dovevi mettere la passwordsulla tua chiave privata del laptop. Se vuoi davvero fare questo, allora devi cancellare
la tua chiave pubblica/privata (id_rsa, id_rsa.pub) sul portatile, ricrearla senza password con ssh_keygen e propagarla sul raspberry_pi. Nota che a questo punto sarebbe meglio fare pulizia sul raspberry pi e eliminare la chiave vecchia in authorized_key, visto che ora non serve piu'. SSH e' un bellissimo strumento. Invito tutti quello che non l'hanno ancora fatto a spendere un po' di tempo per impararlo. Emanuele -- Per iscriversi (o disiscriversi), basta spedire un messaggio con OGGETTO "subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxx