Quando si desidera disporre di accessi SSH basati su chiave pubblica per più macchine, si utilizza una chiave privata e si inserisce la stessa chiave pubblica su tutte le macchine? O hai una coppia di chiavi privata / pubblica per ogni connessione?
Quando si desidera disporre di accessi SSH basati su chiave pubblica per più macchine, si utilizza una chiave privata e si inserisce la stessa chiave pubblica su tutte le macchine? O hai una coppia di chiavi privata / pubblica per ogni connessione?
Risposte:
Uso una chiave per set di sistemi che condividono un confine amministrativo comune. Ciò limita il numero di macchine che vengono espulse se una chiave viene compromessa, pur non compromettendo completamente la mia capacità di memorizzare e gestire diverse migliaia di chiavi. Passphrase differenti su ogni chiave significano che anche se tutte le tue chiavi private vengono rubate e una chiave è compromessa, il resto non va in bagno con essa. Inoltre, se fai qualcosa di stupido (come copiare una chiave privata su una macchina non fidata), di nuovo non devi ricomporre tutto, solo le macchine associate a quella chiave.
La chiave pubblica non ha molta importanza, poiché, per definizione, può essere pubblicizzata. Quindi l'unico problema è la privacy delle tue chiavi private. Sono sulla tua macchina e tutti insieme, quindi se uno è compromesso, è probabile che saranno tutti compromessi. Pertanto, più coppie di chiavi sono solo più lavoro per lo stesso effetto.
L'unica volta che userei chiavi diverse è per account o ruoli diversi, che per definizione non dovrebbero avere una sovrapposizione completa nell'accesso.
Se ho capito bene, ogni server avrà la sua chiave pubblica.
Per un determinato utente , è possibile generare una chiave e utilizzarla ovunque, purché la chiave privata venga replicata su tutti gli host di avvio. (Ciò avverrebbe automaticamente tramite home directory montate in rete e un sistema di autenticazione basato su directory come OpenLDAP poiché l'utente sarà sempre "lo stesso" indipendentemente dalla workstation da cui effettuano l'accesso.)
Al di fuori di un sistema utente basato su directory, penso che sia una cattiva idea ™ utilizzare le stesse chiavi ovunque: si finisce con una riduzione netta della sicurezza del sistema, poiché chiunque può ottenere una chiave da una qualsiasi delle workstation può quindi autenticarsi come quell'utente al server remoto.
Un'altra alternativa, adottata da diverse grandi aziende (e sono sicuro anche quelle di piccole dimensioni) è quella di non consentire mai a un "utente" di utilizzare chiavi pre-condivise, ma piuttosto di accedere a una casella "jump" o "hub" , su
all'utente di connessione appropriato, quindi SSH da lì ai server che devono gestire.
Inoltre, se si utilizza un sistema di gestione come la piattaforma HP Automation Server, l'amministrazione remota dei server gestiti diventa un processo più semplificato.
su
sessione è registrata, tuttavia, è verificabile.
su
sessioni sono controllabili e non le altre?
Come altri hanno già detto, anche se l'idea di più coppie di chiavi può sembrare più sicura, se esiste la possibilità che vengano utilizzate in modo tale da trovarsi tutte nello stesso posto, è solo più seccante e non più sicura. Le passphrase multiple lo renderebbero più sicuro ma anche un grosso mal di testa cercando di ricordare quale passphrase va con quale chiave e quale chiave va con quale server.
La risposta più ragionevole per me sarebbe quella in cui mi è stato suggerito di farlo SOLO se comporta ruoli amministrativi separati senza troppe sovrapposizioni. Tale che potrebbero essere persone diverse che gestiscono ruoli diversi, o su diverse stazioni di lavoro o altro. In quel caso hai comunque cose più singolari da affrontare per ogni ruolo diverso, quindi è più giustificabile.
Per semplificare la gestione di più server compatibili con SSH, è possibile provare cssh . È possibile combinare cssh con chiavi SSH passphrased per migliorare notevolmente la capacità di gestire più server contemporaneamente.