Benutzer-Werkzeuge

Webseiten-Werkzeuge


howtos:sshexpert
Übersetzungen dieser Seite:

Dies ist eine alte Version des Dokuments!


SSH - für Fortgeschrittene

Die Authentifizierung über OpenSSH Keys haben wir schon angesprochen. Das Ganze hat aber ein paar Unschönheiten. Zum einen muss der Public Key erstmal in die authorized_keys Datei des Servers gelangen (siehe ssh-copy-id), wozu erstmal ein Passwort erforderlich ist. Passworte haben aber die unangenehme Eigenschaft abzulaufen und daher regelmäßig geändert werden müssen, auch wenn man sie gar nicht benutzt.
Will man die Berechtigung zentral verwalten meist die Passwort Authentifizierung im SSH abgeschaltet um sicherzustellen, das die Server nur von ausgewähltem Personal erreicht werden können. Darüberhinaus kommen auch SSH private Keys, genau wie Passworte, schon mal abhanden, sind also „verbrannt“. Aus Sicherheitsgründen sollten also auch die Key Pairs regelmässig ausgewechselt werden. Also muss auch das Alter eines Keys nachgehalten werden.
All diese Dinge können ad acta gelegt werden, wenn man die Keys authorisiert und diese Authorisierung im Key hinterlegt. Wenn man nun der authorisierenden Stelle (oder Person) vertraut, reicht es aus, wenn ein SSH Key unterschrieben (digita signiert) ist.

Genauso, wie der Server ein Interesse daran hat, die User zu authentifizieren, benötigt auch der Benutzer eine Möglichkeit den Server als vertrauenswürdig zu erkennen. OpenSSH bietet nicht nur die Möglichkeit, den Key des Benutzers zu signieren sondern auch den des Servers. Auch die OpenSSH Hostkeys können also signiert werden und der User kann die Signatur des Hostkeys prüfen.
Nun aber in Media Res:

Certification Authority (CA) anlegen

Die CA besteht eigentlich nur aus einem Key Pair, wie jeder andere SSH-Key. Allerdings wird dieser Key nicht zur Authentifizierung eines Benutzers sondern zur Erstellung einer digitalen Signatur genutzt. Idealerweise liegt der private Key der CA auf einem Rechner ohne Internetverbundung, um zu vermeiden das Hacker selbst ihre Keys signieren.
Der Key wird wie immer mit ssh-keygen angelegt

ssh-keygen -b 2048 -t rsa -C "Meine Certification Authority" -N "Passphrase" -f id_rsa_ca

Dieser Key wird nun genutzt, um die Public Keys der User zu signieren.

ssh-keygen -s id_rsa_ca -I "vorname.machname@example.com" -n "unixuser1,unixuser2" -V +2w -z 1 id_rsa.pub

Damit ist der Key signiert, und man kann die Signatur mit ssh-keygen anschauen:

ssh-keygen.exe -L -f id_rsa-cert.pub  

Die Ausgabe sieht wie folgt aus:

id_rsa-cert.pub:
      Type: ssh-rsa-cert-v01@openssh.com user certificate
      Public key: RSA-CERT SHA256:gbg5aGoDtSFwl5sz9kf19IxbrooD6BrpaqQubSA2MLU
      Signing CA: RSA SHA256:RgdqfmX3VxV+Gd5dYQdOPlywoVSbxif0tSyoQASq8gg
      Key ID: "vorname.machname@example.com"
      Serial: 1
      Valid: from 2017-11-27T21:12:00 to 2017-12-11T21:13:50
      Principals:
              unixuser1
              unixuser2
      Critical Options: (none)
      Extensions:
              permit-X11-forwarding
              permit-agent-forwarding
              permit-port-forwarding
              permit-pty
              permit-user-rc
howtos/sshexpert.1511814108.txt.gz · Zuletzt geändert: 2017/11/27 20:21 (Externe Bearbeitung)