Pubblicare id_rsa.pub per una configurazione più semplice di nuovi ambienti?


20

Per semplificare la configurazione di SSH senza password su nuove macchine e ambienti, c'è qualche ragione per cui il id_rsa.pubfile (solo la metà pubblica della coppia di chiavi) non può essere pubblicato da qualche parte sul web? Ad esempio in un repository GitHub di dotfiles.

Sono consapevole che:

  • il id_rsafile (la metà privata della coppia di chiavi) deve essere attentamente protetto e
  • la coppia di chiavi deve essere protetta con una passphrase

Ma le mie ricerche non hanno rivelato alcun consiglio esplicito che questo sia consentito o incoraggiato.

Per curiosità, lo stesso consiglio sarebbe valido per una coppia di chiavi senza passphrase?


2
Mentre potrebbe essere sicuro nel caso generale (supponendo una chiave generata correttamente), in passato esistevano difetti (il famoso bug Debian OpenSSH ) che limitavano gravemente lo spazio delle chiavi e lasciavano la chiave privata indovinabile in base alla chiave pubblica. Quindi c'è sempre quel rischio: come fai a sapere che il tuo keygen SSH non soffre di un difetto simile?
Bob

2
Un meccanismo per questo esiste già: ssh-import-id
MikeyB,

così puoi condividere id_rsa.pub tra macchine?
Federico,

Risposte:


26

RSA è progettato specificatamente per consentirti di condividere quella chiave pubblica, quindi sì, puoi pubblicarla. Questo è abbastanza simile al modo in cui x.509 (e SSL) con i certificati RSA funzionano.

Prima di pubblicare il file, guardalo effettivamente; le uniche cose che devono essere presenti sono la parola chiave "ssh-rsa" e la chiave codificata in base64. Potresti voler mantenerlo (credo che questo sia il default ora).

Ciò è vero indipendentemente dal fatto che la chiave abbia o meno una passphrase. Una passphrase crittografa la chiave privata e non influisce sulla chiave pubblica.

Assicurati, come sempre, che la tua chiave sia sufficientemente entropica e grande. Se viene generato da un PRNG rotto, potrebbe essere prevedibile. Tuttavia, la pubblicazione di questo non presenta molti rischi aggiuntivi, poiché se lo spazio delle chiavi è così piccolo un utente malintenzionato può semplicemente provare con tutte le chiavi nello spazio delle chiavi elencato fino a quando non ottengono quello giusto.

Suggerisco di utilizzare una chiave a 4096 bit (specificare -b 4096), in modo che sia più difficile del solito (il valore predefinito è 2048) per qualcuno invertire la chiave pubblica in una chiave privata. Questo è l'unico rischio significativo nel fare questo, e non è molto grande poiché l'algoritmo è specificamente progettato per renderlo poco pratico.


33

Lo è già. :) Inserisci ".keys" alla fine dell'URL del tuo profilo Github, in questo modo:

https://github.com/tjmcewan.keys


Thant è davvero interessante. Per cosa GitHub lo espone?
richardneish,

Convenienza. :) Dopotutto è una chiave pubblica, è pensata per essere condivisa. Ora è molto più facile afferrare la chiave di un nuovo collaboratore e aggiungerla ai tuoi server. Salva l'e-mail avanti e indietro.
martedì

Non avevo realizzato che lo facessero.
Zeb,

1
+1 per l'interessante scoperta su Github.
Raymond Tau,

5

Mentre di norma non consiglio di inserire la propria configurazione specifica nei repository di progetti pubblici (supponendo che il repository sia per tutti e che la configurazione sia solo per te , è solo un po 'scortese), le implicazioni per la sicurezza sono minime.

L'unico vettore di attacco ragionevole è in qualche modo utilizzare quella chiave pubblica per identificarti in un contesto dannoso. Quello che potrebbe essere è al di là di me, ma la chiave pubblica identifica in modo univoco la chiave privata, anche se non fornisce alcun suggerimento sulla sua origine.

C'è un vettore di attacco caso d'angolo che probabilmente non si applica, ma se ricorderete il fiasco con Debian che rompe accidentalmente il PRNG di openssl , qualsiasi chiave ssh generata su un sistema interessato è facilmente prevedibile e può essere identificata dalla sua chiave pubblica. Quindi, in tal caso, pubblicare la chiave pubblica potrebbe metterti nei guai. O più appropriatamente, usare quella chiave per qualsiasi cosa potrebbe metterti nei guai.


vettore 1. che ne dite della collisione delle impronte digitali? è molto più breve della chiave pubblica stessa; vector 2 mim mim like "oops server ha dovuto essere reinstallato ha una chiave diversa, ma accedi comunque" e falsa autenticazione riuscita per determinate chiavi pubbliche dell'utente (se possibile, non ne sono sicuro)

1

Sì, puoi pubblicare il tuo pubkey SSH. E puoi pubblicare un'impronta digitale del server usando il record SSHFP in DNS! Questo potrebbe essere davvero utile, ad esempio, se è necessario aggiornare / modificare la chiave SSH di un server.

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.