SSH Key in verschlüsseltem Container ablegen

Um sich remote mit einem Linux / Unix System zu verbinden, wird in der Regel SSH verwendet. Dabei wird eine verschlüsselte Verbindung zum Zielsystem aufgebaut. Zur Authentifizierung sollte ein SSH Schlüsselpaar verwendet werden. Dies bringt eine deutlich höhere Sicherheit als eine klassische Authentifizierung mittels Benutzername und Passwort. Denn der SSH Schlüssel wird zusätzlich mit einer Passphrase versehen. Somit handelt es sich um eine Zwei Faktor Authentifizierung. Es wird immer der Schlüssel und die Passphrase benötigt.


Der private SSH Key wird in der Regel unter „~/.ssh/ abgelegt. Ohne Passphrase ist der Schlüssel natürlich sinnlos. Daher hängt der Schutz von der Qualität der verwendeten Passphrase ab. Jeder, der physischen Zugriff auf den Rechner hat, kann den jeweiligen SSH Key entwenden. Um dies zu vermeiden, lassen sich die Schlüssel auch in einem verschlüsselten Container ablegen. Eine Möglichkeit hierfür bietet „Veracrypt“, welches es für Linux, Mac OS und Windows gibt. Das Erstellen eines verschlüsselten Containers ist ziemlich einfach. Es gilt nur zu beachten, dass man das richtige Dateisystem für die eingesetzte Plattform verwendet, da ansonsten ggf. die Berechtigungen nicht sauber gesetzt werden können.

SSH Key in VeraCrypt Container

In diesen Container lassen sich, sobald er eingebunden ist, die vorhandenen SSH Keys verschieben. Folgender Befehl dient nur als Beispiel. Der Zielpfad sowie der Name des Schlüssels müssen entsprechend angepasst werden.

mv ~/.ssh/id_rsa /mnt/veracrypt

Für den verschobenen SSH Key werden die Berechtigungen noch einmal neu gesetzt.

sudo chmod 600 /mnt/veracrypt/id_rsa

Damit der SSH Agent auch mitbekommt, wo der SSH Key ab sofort liegt, muss die SSH Config editiert werden. Am einfachsten lassen sich die Verbindungen direkt in „~/.ssh/config“ hinterlegen. Dort werden u.a. die Informationen für Host, Key, Benutzer und Port hinterlegt.

nano ~/.ssh/config
Host Raspi
  HostName 192.168.1.254
  IdentityFile /mnt/veracrypt/id_rsa
  User raspberry
  Port 22

Bei “IdentityFile” wird jetzt der neue Pfad angegeben. Alle weiteren Parameter müssen wieder entsprechend angepasst werden. Wer diese Angelegenheit unter „Mac OS Sierra“ durchführt, kann gleich dafür sorgen, dass die Passphrase nicht automatisch in der Keychain gespeichert wird. Dieses Verhalten ist seit Sierra als Standard definiert. Dazu muss in der SSH Config für den jeweiligen Host noch die Zeile „UseKeyChain no“ hinzugefügt werden.

Host Raspi
  HostName 192.168.1.254
  IdentityFile /mnt/veracrypt/id_rsa
  User raspberry
  Port 22
  UseKeyChain no

Neben SSH Keys lassen sich z.B. auch OpenVPN Zertifikate in einem verschlüsselten Container ablegen. Natürlich leidet womöglich die Anwenderfreundlichkeit unter so einer Maßnahme, allerdings wird der Schutz der sensiblen Daten erhöht.