Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungLetzte ÜberarbeitungBeide Seiten der Revision | ||
howtos:sshexpert [2017/12/02 15:47] – [Certification Authority (CA) anlegen] morquai | howtos:sshexpert [2017/12/02 16:09] – [Signieren eines Hostkeys] morquai | ||
---|---|---|---|
Zeile 12: | Zeile 12: | ||
Dieser Key wird nun genutzt, um die Public Keys der User zu signieren. | Dieser Key wird nun genutzt, um die Public Keys der User zu signieren. | ||
===== SSH Key eines Users signieren ===== | ===== SSH Key eines Users signieren ===== | ||
- | ssh-keygen -s id_rsa_ca | + | ssh-keygen -s id_rsa_userca |
Damit ist der Key signiert, und man kann die Signatur mit ssh-keygen anschauen: | Damit ist der Key signiert, und man kann die Signatur mit ssh-keygen anschauen: | ||
ssh-keygen.exe -L -f id_rsa-cert.pub | ssh-keygen.exe -L -f id_rsa-cert.pub | ||
Zeile 36: | Zeile 36: | ||
Der Unterschied zwischen einem klassischen SSH Key und einem mit Signatur liegt darin wem man vertraut, dem Key oder demjenigen der ihn signiert hat. Bisher musste man jeden Key dem man vertraut bei jedem User auf jedem Server hinterlegen. Durch das Vertrauen in die Signatur reicht es aus, dem SSH Server die Keys, deren Signatur man vertraut, einmal bekannt zu machen.\\ | Der Unterschied zwischen einem klassischen SSH Key und einem mit Signatur liegt darin wem man vertraut, dem Key oder demjenigen der ihn signiert hat. Bisher musste man jeden Key dem man vertraut bei jedem User auf jedem Server hinterlegen. Durch das Vertrauen in die Signatur reicht es aus, dem SSH Server die Keys, deren Signatur man vertraut, einmal bekannt zu machen.\\ | ||
Um dies zu tun muss man den oben generierten Public Key der CA nach /etc/ssh kopieren und folgende Zeile in die / | Um dies zu tun muss man den oben generierten Public Key der CA nach /etc/ssh kopieren und folgende Zeile in die / | ||
- | TrustedUserCAKeys /etc/ssh/id_rsa_ca.pub | + | TrustedUserCAKeys /etc/ssh/id_rsa_userca.pub |
Die Datei die hinter TrustedUserCAKeys angegeben wird kann, wie eine authorized_keys Datei, auch mehrere Keys beinhalten, es kann also bei Bedarf auch mehrere Stellen geben, deren Signatur man vertraut.\\ | Die Datei die hinter TrustedUserCAKeys angegeben wird kann, wie eine authorized_keys Datei, auch mehrere Keys beinhalten, es kann also bei Bedarf auch mehrere Stellen geben, deren Signatur man vertraut.\\ | ||
Wenn man auf diese Weise vorgeht, muss der signierte SSH Public Key innerhalb der Signatur eine Information enthalten, für welchen Unix User die Signatur verwendet werden darf. Im SSH Jargon nennt man dies die " | Wenn man auf diese Weise vorgeht, muss der signierte SSH Public Key innerhalb der Signatur eine Information enthalten, für welchen Unix User die Signatur verwendet werden darf. Im SSH Jargon nennt man dies die " | ||
Zeile 60: | Zeile 60: | ||
==== Signieren eines Hostkeys ==== | ==== Signieren eines Hostkeys ==== | ||
Man kann natürlich denselben CA Keys benutzen wie für die Benutzerauthentifizierung, | Man kann natürlich denselben CA Keys benutzen wie für die Benutzerauthentifizierung, | ||
- | ssh-keygen -b 2048 -t rsa -C "Meine Certification Authority" | + | ssh-keygen -b 2048 -t rsa -C "Meine Certification Authority" |
+ | Das signieren der Host Keys funktioniert (fast) genauso wie bei User Keys: | ||
+ | ssh-keygen -s id_rsa_hostca -I " | ||
+ | Jeder in der / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | Der Benutzer muss nun in seiner ~/ | ||
+ | echo ' | ||
+ | ===== Das war es auch schon ===== | ||
+ | Mit einer solchen Konfiguration kann nun der Server sicherstellen, | ||
+ | Da Vertrauen zeitlich begrenzt sein kann besteht die Möglichkeit jeder Signatur einen Gültigkeitszeitraum zuzuordnen. Insbesondere kann sichergestellt werden, das bei Benutzern der SSH-Key, wie von Passworten gewohnt, regelmäßig neu erstellt wird. Derjenige, der die Signatur eines User Keys durchführt muss nur den alten und den neuen Public Key vergleichen. Ein gleicher Public Key bedeutet auch, das der gleich Private Key zum Einsatz kam. | ||
+ | |||
+ | |||
+ | |||
| | ||
| | ||