Sto facendo fatica a capire qual è la differenza tra chiavi e certificati host SSH. Quando usare quale? In che cosa differiscono?
Con una chiave host SSH il client deve già fidarsi dell'host o deve accettare l'impronta digitale sul contatto iniziale, ovviamente solo dopo aver verificato che l'impronta digitale corrisponde a quella prevista. Quando si utilizza un certificato, la chiave host viene invece inserita all'interno del certificato e le funzionalità aggiuntive del certificato come oggetto, emittente e firma dell'emittente consentono di ricavare la fiducia in una chiave host ancora sconosciuta dal fidarsi dell'emittente. Rende anche possibile avere una durata limitata della chiave host e revocarla. Essenzialmente l'uso di un certificato rende possibile l'utilizzo di un'infrastruttura PKI che rende tutto più scalabile.
Se comprendi come funziona la convalida dei certificati nei browser, puoi anche confrontarli con certificati autofirmati e certificati emessi dalla CA: la chiave host semplice è paragonabile a un certificato autofirmato, in cui è necessario aggiungere esplicitamente il trust a ciascun browser. La chiave host all'interno di un certificato insieme a una PKI è invece simile ai certificati emessi dalla CA che abbiamo in quasi tutti i casi quando si accede a un https-URL. In questi casi, la fiducia nel certificato del server deriva dalla fiducia nelle CA radice situate nel trust store del browser o del sistema operativo, ovvero solo la CA radice deve essere conosciuta in anticipo ma non ogni certificato del server.
Leggi altre domande sui tag ssh