È una cattiva idea usare la stessa chiave ssh privata su più computer?


35

Di recente ho acquistato un laptop da cui ho bisogno di accedere agli stessi host remoti che faccio dal mio desktop. Mi è venuto in mente che potrebbe essere possibile semplicemente copiare il file della chiave privata dal mio desktop al mio laptop ed evitare di dover aggiungere una nuova chiave ai ~/.ssh/authorized_keysfile su tutti gli host a cui voglio accedere. Quindi le mie domande sono:

  1. È possibile?
  2. Ci sono implicazioni di sicurezza non ovvie?
  3. A volte accedo al mio desktop dal mio laptop. Se si utilizzasse la stessa chiave, ciò causerebbe problemi?

2
Ho il sospetto che tu intenda le chiavi autorizzate, non le host note. Il primo è per l'arrivo, il secondo per l'uscita.
Matthew Schinckel,

Buona pesca. Fisso.
Jason Creighton,

Risposte:


29

Sì, questo è possibile. La tua chiave privata non è legata a un singolo computer.

Non sono sicuro di cosa intendi per non ovvio, è spesso soggettivo;). Non è affatto una cattiva idea se ti assicuri di avere un set di passphrase molto forte, almeno 20 caratteri.

Non ci sono problemi di connessione con la stessa chiave del desktop. Configurerei un agente ssh per la tua chiave sul laptop e inoltrerei l'agente sul desktop, quindi utilizzerai quella chiave su altri sistemi a cui accedi da lì.

Dalla pagina man di ssh-agent su un sistema Linux:

ssh-agent è un programma per contenere chiavi private utilizzate per l'autenticazione con chiave pubblica (RSA, DSA). L'idea è che ssh-agent viene avviato all'inizio di una X-session o di una sessione di login e tutte le altre finestre o programmi vengono avviati come client per il programma ssh-agent. Tramite l'uso di variabili d'ambiente l'agente può essere localizzato e usato automaticamente per l'autenticazione quando si accede ad altre macchine usando ssh (1).

Lo avresti eseguito sul tuo laptop, o il programma ssh-agent su Linux / Unix (viene fornito con OpenSSH), o con l'agente puTTY se stai usando Windows. Non è necessario che l'agente sia in esecuzione su alcun sistema remoto, mantiene semplicemente la chiave privata in memoria sul sistema locale, quindi è necessario inserire la passphrase solo una volta, per caricare la chiave nell'agente.

L'inoltro dell'agente è una funzionalità del client ssh ( ssho putty) che semplicemente persiste l'agente attraverso altri sistemi attraverso la connessione ssh.


1
Non capisco bene cosa stai suggerendo riguardo all'inoltro dell'agente ssh. Potresti approfondire un po 'questo punto? Devo dire che non posso contare sul fatto che il desktop sia sempre accessibile quando devo usare il mio laptop.
Jason Creighton,

Aggiornata la risposta :)
jtimberman il

10

Usavo una singola chiave privata su tutti i miei computer (e alcuni di essi sono solo un utente, non un amministratore), ma recentemente ho cambiato questo. Funziona con la chiave unica, ma significa che è necessario revocare la chiave (se è compromessa), quindi sarà necessario cambiarla su tutte le macchine.

Naturalmente, se un attaccante ha accesso ed è in grado di accedere a un'altra macchina, può quindi ottenere la chiave da quella macchina e così via. Ma mi fa sentire un po 'più sicuro sapere che posso revocare solo una chiave e bloccare quella macchina. Tuttavia, significa che devo rimuovere la chiave dal file authorized_keys.


Mi dispiace necro un vecchio post, ma pensi che questo sarebbe mitigato crittografando la tua chiave privata con una password? O nel tuo caso, anche la password è stata compromessa?
terzo

1
Probabilmente sarebbe mitigato dall'avere una passphrase sulla chiave. In realtà, però, potresti probabilmente usare l'inoltro di ssh (usando un agente), e quindi avere solo una chiave per macchina reale che usi, e in realtà lo hai protetto con password.
Matthew Schinckel,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.