Das Public-Key Verfahren auf Mac OS X

Altes Schloss

Beim Public-Key Verfahren ist ein asymetrisches  Verschlüsselungsverfahren. Es existieren 2 Schlüssel, ein privater Schlüssel und ein öffentlicher Schlüssel. Der private Schlüssel muss, wie der Name schon sagt, geheim gehalten werden.

Der öffentliche Schlüssel wird auf den entfernten Server geladen.

1. Erstellen eines Public/Private-Keys

ssh-keygen -t rsa -b 2048 -v

Mit diesem Befehl wird ein 2048 bit großer RSA-Schlüssel generiert.
Der Paramenter -v steht dabei für „verbose“ (Fragen werden gestellt).
Als Filename gebe ich hier exemplarisch „schluessel“ ein. Als 2 Frage wird nach einem Passwort gefragt. Möchte man den privaten Schlüssel zusätzlich mit einem Passwort schützen, sollte man hier zusätzlich ein Passwort vergeben.

Es wurden 2 Files generiert.

  • schluessel (ohne Dateiendung)
  • schluessel.pub

schluessel ohne Dateiendung ist der Private-Key und darf auf keinen Fall an die Öffentlichkeit gelangen.

2. Hochladen des öffentlichen Schlüssels auf den Server

Um den öffentlichen Schlüssel auf den Server zu laden sind ein paar Schritte notwendig.
Unter Mac ist der Befehl ssh-copy-id leider nicht vorhanden. Deswegen installiere ich ihn über Homebrew

brew install ssh-copy-id

Der Befehl ändert die Rechte des entfernten Verzeichnisses ~/.ssh und ~/.ssh/authorized_keys indem es die Gruppen-Schreibrechte entfernt, da man sich sonst nicht einloggen könnte.
Die -i Option besagt, dass der Schlüssel verwendet werden soll.

ssh-copy-id -i ~/schluessel.pub {benutzername}@{server} -p 22

3. Testen der Verbindung

Anstatt das Passwort eingeben zu müssen sollte es nun mit folgender Anweisung funktionieren:

ssh -i ~/schluessel {benutzername}@{server}

Durch Hinzufügen des privaten Schlüssels mittels IdentityFile in der ~/.ssh/config reicht nun ein einfaches ssh server um eine Verbindung mit dem Server herzustellen.