SSH-Authentifizierung mit KeePassXC

  Martin Brodbeck   Lesezeit: 3 Minuten  🗪 7 Kommentare Auf Mastodon ansehen

KeePassXC enthält eine sehr nützliche SSH Agent Integration. Der Artikel zeigt, wie man diese einrichten kann.

ssh-authentifizierung mit keepassxc

SSH (Secure Shell) ist weit verbreitet und quasi ein Standard für den sicheren Remote-Zugang zu Linux und anderen UNIX-artigen Systemen. Dank der SSH-Agent Integration lässt sich KeePassXC zur komfortablen Verwaltung von SSH-Schlüsseln verwenden. Verschiedene Szenarien werden unterstützt. Ich möchte hier kurz erläutern, wie man den privaten und öffentlichen SSH-Schlüssel in KeePassXC ablegen und wie man sich damit authentifizieren kann.

Einrichtung

Normalerweise ist auf einem Dektop-Linux bereits ein SSH Agent vorinstalliert. Das kann man einfach überprüfen:

$ ssh-add -l
The agent has no identities.

Wenn man diese Ausgabe (oder eine Liste von SSH-Schlüsseln) erhält ist alles bereit.

Nach der Installation von KeePassXC erstellt man zunächst eine KeePass-Datenbankdatei. In dem Einrichtungsdialog folgt man einfach den Anweisungen und vergibt der Datenbank ein sicheres™ Passwort.

Standardmäßig ist die SSH Agent Integration in KeePassXC deaktiviert. Man aktiviert sie über die Einstellungen (Zahnradsymbol in der Toolbar). Der folgende Screenshot zeigt im Detail, wie es gemacht wird.

Das wars auch schon mit den Vorbereitungen seitens KeePassXC. Jetzt brauchen wir einen SSH-Schlüssel.

SSH-Schlüssel erstellen

Also geht es erst einmal in die Konsole. Der SSH-Schlüssel wird wie folgt erstellt:

$ ssh-keygen -o -f keepassxc -C martin@keepassxc
Generating public/private ed25519 key pair.
Enter passphrase for "keepassxc" (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in keepassxc
Your public key has been saved in keepassxc.pub
The key fingerprint is:
SHA256:F8nKK2iZZHfMX/LA/tdDFjgd0FmNfAN8VSLIf9r8Ooo martin@keepassxc
The key's randomart image is:
+--[ED25519 256]--+
|         . .o+=.X|
|         .o. ooBo|
|          +.  +.o|
|       + o ..o.o |
|    o . S = .=. .|
|   o = . = =. oo |
|    = . . o . oo |
|   .   .   o  o.o|
|          E oo.o.|
+----[SHA256]-----+

Im Dateisystem liegen nun zwei Dateien: 

  • keepassxc (privater Schlüssel)
  • keepassxc.pub (öffentlicher Schlüssel).

KeePassXC-Eintrag

Jetzt haben wir alles, was wir brauchen, sodass wir einen Eintrag in KeePassXC erstellen und diesem die beiden Teilschlüssel hinzufügen können.

Über das Plus-Symbol in der KeePassXC-Toolbar wird ein neuer Eintrag erstellt. Diesem vergeben wir einen sinnvollen Namen und tragen als Passwort die zuvor in der Konsole festgelegte Passphrase ein.

Dem neuen Eintrag fügen wir nun den generierten SSH-Schlüssel keepassxc als Anhang hinzu. Dies ist im Bereich Fortgeschritten möglich, zu dem man über das entsprechende Symbol in der linken Spalte kommt.

Weiter geht es im Bereich SSH-Agent. Hier wählt man unter Privater Schlüssel den gerade hinzugefügten Anhang aus. Im unteren Bereich ist der dazugehörige öffentliche Schlüssel zu sehen.

Die zuvor generierten Dateien keepassxc und keepassxc.pub können jetzt aus dem Dateisystem gelöscht werden.

Ich wähle an dieser Stelle außerdem die Option Key zum Agenten hinzufügen, wenn Datenbank geöffnet/entsperrt wird aus. Somit brauche ich gar nicht mehr daran zu denken, den SSH-Schlüssel verfügbar zu machen – das passiert von alleine.

Fortan macht also KeePassXC dem SSH Agent den (oder die – man kann beliebig viele Schlüssel hinterlegen) Schlüssel bekannt. Fertig. ssh-add -l listet nun den von KeePassXC verwalteten SSH-Schlüssel auf. Den öffentlichen Schlüssel kopiert man einmal mit dem Konsolenbefehl ssh-copy-id auf die Remote-Maschinen und kann sich dann komfortabel per ssh einloggen.

KeePassXC auf mehreren Geräten

Es mag aus Sicherheitsaspekten umstritten sein, aber: Bei mir liegt die (gut verschlüsselte) KeePassXC-Datenbank in der (meiner!) Nextcloud. Der Hauptvorteil für mich ist: Ich kann den oben eingerichteten SSH-Schlüssel damit überall verwenden, egal ob ich gerade am Desktop oder am Notebook arbeite. KeePassXC bewahrt den Schlüssel für mich sicher auf und stellt ihn dem SSH Agent zur Verfügung. Nextcloud macht die Datenbank wiederum auf allen Geräten verfügbar. Möchte ich den SSH-Schlüssel aus irgendeinem Grund ersetzen, brauche ich dies nur einmal zu machen; die anderen Rechner bekommen die Änderung ja automatisch mit.

Tags

KeePassXC, Tipps & Tricks, SSH-Keys

muphli
Geschrieben von muphli am 31. Juli 2025 um 12:28

Ich hatte auch schon überlegt, diese Funktion von KeePassXC zu nutzen. Dann ist das Thema aber doch wieder ein Vergessenheit geraten. Vielen Dank für die Erinnerung und für den tollen Artikel!

Xavin
Geschrieben von Xavin am 31. Juli 2025 um 13:49

Coole Sache, direkt erfolgreich eingerichtet.

goebbe
Geschrieben von goebbe am 31. Juli 2025 um 15:25

Vielen Dank für den Artikel! Interessant, damit hatte ich mich noch nie beschäftigt. Hintergrund: Ich nutze ssh-keys für automatisierte backups auf einem Server. Nun bin ich am überlegen, was genau die Vor- und Nachteile dieser Lösung sind - um besser zu verstehen, ob die Lösung für mich zweckmäßig wäre. KeePassXC muss vermutlich immer (mindestens einmal pro Session) freigeschaltet werden, damit es die ssh-Dateien bei Bedarf bereitstellen kann, oder?

Martin Brodbeck
Geschrieben von Martin Brodbeck am 31. Juli 2025 um 16:15

Ich habe es so eingestellt, dass KeePassXC den Schlüssel dem SSH Agent beim Öffnen der Datenbank bereitstellt und auch wenn sie geschlossen wird nicht wieder entfernt. Das kann man also konfigurieren.

V wie Vendetta
Geschrieben von V wie Vendetta am 1. August 2025 um 13:14

Ich nutze KeepassXC schon lange und muss gestehen, ich wusste gar nicht, dass es so etwas beherrscht. Für SSH-Verbindungen benutze ich aber auch MobaXterm, welches sich auch um die Schlüssel kümmert.

David
Geschrieben von David am 1. August 2025 um 17:20

Vielen Dank für den Artikel! Schaltet KeepassXC eine bereits bestehende SSH-Agent integration aus? Das kann ich mir kaum vorstellen. Der Artikel geht leider darauf gar nicht ein.

Etienne
Geschrieben von Etienne am 3. August 2025 um 07:59

Danke für die Anleitung. Hatte das schon mal probiert, funktionierte aber nicht. Mit diesem Anlauf hat es geklappt.