Che significato ha l'utente / host alla fine di un file di chiave pubblica SSH?


74

Non riesco a capire perché un file di chiave pubblica SSH generato da ssh-keygenabbia un utente e un host alla fine di esso.

Esempio: id_rsa.pub

ssh-rsa ... rest of file ... /CA9gyE8HRhNMG6ZDwyhPBbDfX root@mydomain

Si noti root@mydomainalla fine del file.

Se posso usare la chiave pubblica ovunque con qualsiasi utente per autenticarmi usando la mia chiave privata, che significato ha il root @ miodominio nel processo di autenticazione?

O è solo un segnaposto per capire da chi è stato rilasciato?


2
Ho visto alcuni moduli web troppo zelanti che richiedono che il campo dei commenti includa un simbolo @, ma non c'è alcun motivo tecnico per questo.
pulcini,

Risposte:


107

Questo campo è un commento e può essere modificato o ignorato a piacimento. L'impostazione user@hostpredefinita è ssh-keygen.


1
Breve e al punto. Essere in grado di cambiare il commento a risolverà il puzzle per me. Pensavo avesse un qualche tipo di ruolo nel processo di autenticazione ssh.
Basilio,

2
@BasilA Ho alcune chiavi in ​​cui l'ho rimosso del tutto.
Michael Hampton

3
Quando si configura l'accesso con chiave SSH a un'istanza su Google Cloud Compute , GCC utilizza questo campo di commento per identificare il nome utente sull'istanza a cui deve essere associata la chiave.
hBy2Py

53

Questo è brevemente spiegato nella pagina del manuale sshd(8)nella sezione relativa alle chiavi autorizzate:

Protocollo 2 chiave pubblica è composto da: opzioni , KeyType , chiave di codifica Base64 , comment.

Nel opensshcontesto delle chiavi autorizzate, esiste solo un significato di commento. Ma ci sono implementazioni SSH, che danno il significato a questa parte, come ad esempio l'implementazione SSH nei modem LANCOM sta usando questo commento come un nome utente per cui la chiave è valida.


6
+1 per aver citato l'uomo
mgarciaisaia

17

Come altri hanno fatto notare, si tratta di un commento per permettere voi di identificare quale tasto è quale.

Quando si guarda una singola chiave, ad esempio id_rsa.pub, non fa molta differenza, ma quando si guarda un elenco potenzialmente lungo di chiavi, come quello che hai nel authorized_keysfile, è molto utile essere in grado di identificare facilmente quale chiave è quale.

Inoltre, ssh-keygenl'impostazione predefinita è user@hostname, che per i casi d'uso tipici è un identificatore chiaro di quale chiave sia ( user@domainnon sarebbe).


5

Molto, molto semplice: io e te siamo umani usando una macchina. Quindi guardando questo esempio hai pubblicato:

ssh-rsa [piles of gobbledygook]…CA9gyE8HRhNMG6ZDwyhPBbDfX root@mydomain

Una macchina può leggere questo:

ssh-rsa [piles of gobbledygook]…CA9gyE8HRhNMG6ZDwyhPBbDfX

Un essere umano può leggere questo commento:

root@mydomain

Le persone tendono a dimenticare che, anche se le cose potrebbero sembrano complicate su sistemi di computer, potrebbero in realtà essere di tonnellate più complicato se il codice è stato progettato solo per il consumo della macchina. Intendo dare un'occhiata al codice malware oscurato. Una volta decodificato e formattato, è leggibile dall'uomo. Ma qualcuno ha dovuto fare di tutto per rendere difficile la lettura da parte degli umani.

Per impostazione predefinita, tutti i tipi di codifica e file di configurazione su un sistema informatico sono strutture per il consumo umano perché ... Siamo umani che usano macchine e macchine non abbiamo bisogno di cose come:

  • Commenti.
  • Rientranze.
  • Variabili e funzioni scritte in un linguaggio leggibile dall'uomo.

Quindi il commento è destinato a te, a me e a nessun altro. Molto probabilmente funzionerebbe senza un commento. Ma quella volta che qualcosa non funziona alle 3:00 del mattino e stai cercando la chiave pubblica giusta, vorrai / sognerai / pregherai che il commento sia lì.


7
"le macchine non hanno bisogno di cose come ... rientri" tosse Python tosse
un CVn del

1
@ MichaelKjörling "... a meno che non siano fatti per prendersi cura di loro." :-)
hBy2Py
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.