SSH mit mehreren Schlüsseln nutzen

Normalerweise erzeugt man einen privaten und einen öffentlichen Teil seines SSH-Schlüssels, hinterlegt den öffentlichen Teil auf den entsprechenden Servern und loggt sich mit diesen dort ein. Nun kann es aber durchaus vorkommen, dass man mit unterschiedlichen Schlüsselpaaren arbeiten muss um sich auf verschiedenen Servern einzuloggen. Zur Lösung dieses Problems existieren zwei Herangehensweisen, welche beide mit der SSH-Konfigurationsdatei arbeiten. Die Konfigurationsdatei ist im Home-Verzeichnis der Nutzers unter .ssh/config zu finden ist. Bei der ersten Möglichkeit werden die entsprechenden Schlüssel in der Konfigurationsdatei hinterlegt:

IdentityFile ~/.ssh/id_rsa
IdentityFile ~/.ssh/id_rsa_production
IdentityFile ~/.ssh/id_rsa_test
IdentityFile ~/.ssh/id_rsa_integration

Damit werden bei einem Login auf einem Server die Schlüssel der Reihe nach durchprobiert. Bei der zweiten Möglichkeit wird ein Host pro Server konfiguriert:

Host production production.example.com
    HostName production.example.com
    User root
    IdentityFile ~/.ssh/id_rsa_production
    

Host test test.example.com
    HostName test.example.com
    User root
    IdentityFile ~/.ssh/id_rsa_test

Host integration integration.example.com
    HostName integration.example.com
    User root
    IdentityFile ~/.ssh/id_rsa_integration

In der Konfiguration des Hosts befinden sich neben dem Host auch die zu nutzende Schlüsseldatei. Als weiteren Vorteil kann man die SSH-Verbindung nun über den definierten Kurznamen aufrufen:

ssh production

Dabei wird die Verbindung mit der definierten Schlüsseldatei aufgebaut, so dass ein durchprobieren der unterschiedlichen Schlüssel vermieden wird.

PGP-Schlüssel unter Mac OS X exportieren

Wer mittels PGP seine Mails verschlüsselt benötigt hierfür einen privaten und einen öffentlichen Schlüssel. Geht der private Schlüssel verloren, so können keine neuen Mails verschlüsselt und bestehende Mails nicht mehr gelesen werden. Deshalb ist es ratsam von dem Schlüssel ein Backup zu machen.

Die GPG Keychain unter Mac OS X

Die GPG Keychain unter Mac OS X

Unter Mac OS X wird dazu die GPG Keychain geöffnet und dort auf den entsprechenden Schlüssel geklickt. Im Kontextmenü muss der Punkt Exportieren ausgewählt werden. In dem sich öffnenden Dialog muss die Checkbox Geheimen Schlüssel ebenfalls exportieren ausgewählt sein. Damit wird der öffentliche und der private Schlüssel in eine ASCII-Datei exportiert, welche anschließend sicher verwahren kann.

PuTTY SSH Schlüssel in OpenSSH Schlüssel umwandeln

Möchte man den privaten SSH Schlüssel welcher mittels des “PuTTY Key Generator” erzeugt wurde auch in der “Git Bash” nutzen, so muss man den Schlüssel in das OpenSSH Format bringen.

Der PuTTY Key Generator

Der PuTTY Key Generator

Dazu öffnet man den PuTTY Schlüssel mittels “File” -> “Load private key”. Anschließend wird der Schlüssel über “Conversions” -> “Export OpenSSH key” in eine Datei mit dem Namen “id_rsa” exportiert. Diese Datei wird dann in den Benutzerordner (z.B. “c:\Users\seeseekey\.ssh\” unter Windows 7) gelegt. Anschließend kann der Schlüssel auch unter der Git Bash benutzt werden.

ssh-copy-id unter Mac OS X benutzen

Mittels des Kommandos “ssh-copy-id” ist es ohne weitere Probleme möglich den öffentlichen SSH Schlüssel auf einen entfernten Rechner zu kopieren. Leider gibt es dieses Kommando nicht unter Mac OS X. Dank des Scriptes von devthought kann man dies aber unter Mac OS X nachrüsten. Dazu gibt man folgende Befehle im Terminal ein:

curl -O https://seeseekey.net/wp-content/uploads/2014/12/ssh-copy-id.sh
sudo cp ssh-copy-id.sh /usr/bin/ssh-copy-id
sudo chmod a+x /usr/bin/ssh-copy-id

Danach kann das Kommando benutzt werden:

ssh-copy-id -i ~/.ssh/id_rsa.pub root@example.org

Anschließend sollte man sich ohne Passwort an dem entsprechenden Rechner anmelden können.