Questa sembra una risposta pertinente alla tua domanda: Verifica dell'impronta digitale SSH di un server pubblico
In breve, il server SSH ha una chiave pubblica e privata che vengono utilizzate mentre si stabilisce una connessione dal client SSH. Il server fornirà una copia della sua chiave pubblica al client dove viene presentata all'utente per la verifica. L'utente è quindi responsabile della convalida di quella chiave con l'amministratore del server e quindi dell'accettazione della chiave.
Una volta accettato, l'utente lo vedrà sempre solo se la chiave cambia. Quando la chiave cambia, potrebbe essere una ri-chiave eseguita sul server dall'amministratore o tramite attacco in stile MITM; dovresti ricontrollare la chiave con l'amministratore per vedere quale è quale.
Non ci sono "sfide" perché credo che tu stia cercando di dirlo, poiché questo è esattamente come Chiave pubblica La crittografia funziona.
Modifica
Un server SSH genererà automaticamente le sue chiavi host durante l'installazione tramite l'utilizzo dell'applicazione ssh-keygen
. Questo in genere crea una chiave RSA, DSA, ecdsa o ed25519, o qualche variazione lì (a seconda della configurazione).
Un client che si connette al server utilizzerà ssh-keyscan
per verificare l'impronta digitale del server e presentarlo all'utente come verifica. Quando accetti quella chiave, la scrive nel file ~/.ssh/known_hosts
per ricordarla. Ogni volta che il tuo client ssh lo collega a quel server, legge l'impronta digitale, lo controlla nel file known_hosts
e assicura che non sia cambiato. Se lo fa, tu, l'utente, ti viene presentato un avvertimento che la chiave è cambiata e che la connessione è stata interrotta. È necessario eliminare o modificare manualmente la chiave per potersi connettere di nuovo.
$ ssh-keyscan some.remote.server
some.remote.server ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA8BPNr+Q8cQfU95jfJKIfAH+z0+q03QDeFH1ndeTC3Zf0EDjZOg1OXs+Xiwjgrkq+vcNIA5DPaux3aStrcSa5o1AjgBNKN4rMyaLMW1c5LUnSic2oE7YTGvO1AHL55+Z4rCiEbDHeK2LXwhZifNvqkxf44pKrIe8kCvt89dkRsCria4n5EedGazKxO0mvbHM9JSpg03CiD4B+/afOrZqCJrf5dYcDCmeiBPSn9vjiZzAl2NYj05GVSqoe8KeFQV9n4c4LtWfzSDshvLlypuSfylzhL3euWG6JP8G6HnBohSiSQFk/Y0VFX/4wYshKjN3px0ugYUrucXXv8Sznv6n1Dw==
Se dovessi aprire il file known_hosts
sul mio sistema, vedresti questa voce esatta lì dentro.
EDIT 2:
Leggendo i commenti, ti sembra di essere bloccato su questo bit di impronta digitale. L'impronta digitale è la parte pubblica della crittografia a chiave pubblica. Dovresti davvero leggere di più su questo come ho collegato prima per comprendere appieno questo concetto. In Crypto a chiave pubblica, una chiave privata e una chiave pubblica vengono create matematicamente contemporaneamente. Questa coppia di chiavi possiede un'abilità speciale in quanto qualsiasi cosa criptata dalla chiave privata può essere SOLO decrittografata dalla chiave pubblica e qualsiasi cosa criptata dalla chiave pubblica può SOLO essere decodificata dal Chiave privata Questo è cypto asimmetrico, NON crypto simmetrico (usando una chiave per cifrare / decifrare).
Devi anche capire come funziona la firma per comprendere l'uso della crittografia a chiave pubblica. Se scrivo un messaggio in chiaro e te lo mando, non sai che l'ho inviato. Se invece scrivo un messaggio di testo in chiaro e in fondo aggiungo un blob crittografato che contiene un hash del messaggio ed è stato crittografato usando la mia chiave privata, quindi la mia chiave pubblica può essere usata per decrittografare il blob, il messaggio di testo in chiaro può essere sottoposto a hash e confrontato con l'hash che ho incluso nel blob crittografato.
Questo stesso concetto è applicato qui con SSH. Poiché solo la chiave privata utilizzata sul server è in grado di funzionare con la chiave pubblica del client, è possibile provare matematicamente che si tratta della stessa macchina.
Come accennato nel mio commento, è quasi impossibile generare due chiavi private che sono una corrispondenza esatta fornendo così un'impronta digitale duplicata. Se potessi generare una chiave privata che era esattamente la stessa della chiave privata di un altro server, allora sì, avresti la stessa impronta di quella di un altro server. Consideralo impossibile oggi.