Wichtige Info

Die Inhalte, die du hier siehst stelle ich dir ohne Werbeanzeigen und ohne Tracking deiner Daten zur Verfügung. Trotzdem muss ich die Server bezahlen sowie Zeit in Recherche, Umsetzung sowie Mail Support stecken.
Um dies leisten zu können, verlinke ich in einigen Artikeln auf die Plattform Amazon. Alle diese Links nennen sich Afiliate Links. Wenn du dir mit diesem Link etwas kaufst, dann erhalte ich eine kleine Provision. Dies ändert jedoch NICHT den Preis, den du bezahlst!
Falls du mich also unterstützen möchtest, kannst du auf den Link zum Produkt klicken und hilfst mir dabei, dieses Hobby weiter zu betreiben.
Da ich Keine Werbung schalte und keine Spenden sammle, ist dies die einzige Möglichkeit, meine Systeme und mich zu finanzieren. Ich hoffe du kannst das verstehen :)



SSH Keys in KeePass speichern und verwenden


Einleitung

Dieser Beitrag ist, wie so oft, motiviert durch Vorgänge in meinem Leben und in diesem speziellen Fall der Aufrüstung meiner persönlichen Sicherheitsmechanismen.

Grundsätzlich sind alle meine Server mit mindestens 4096 Bit langen SSH Keys geschützt zzgl. 2 FA für jeden Account auf den Servern. Zudem sind alle Daten auf allen Geräten/Servern Dateisystem verschlüsselt.

Dementsprechend viel "Overhead" verbirgt sich auf meinen Systemen. Für jede Anmeldung habe ich einen Key, dann der Public Key in den SSH Files, zusätzlich Wiederherstellungskeys für Verschlüsselung usw..

Dafür habe ich bisher Cloudinfrastruktur verwendet um die Keys zu allen Geräten zu synchronisieren, wo ich diese benötige.

Der offensichtliche Nachteil ist hier natürlich: Hat jemand den Key, kann er (wenn er zusätzlich irgendwie das zugehörige Passwort erhält und den 2 Faktor (I know recht unwahrscheinlich, aber es geht hier um mehr oder weniger alle Daten meines Lebens), kann sich die Person Zugang zu meinen Systemen verschaffen...

Eine Sache, die ich nach Möglichkeit verhindern möchte.


Ich habe zwar für viele Dienste eigene Server am laufen, welche nichts "voneinander wissen", für jeden Dienst auf den Servern non-root Nutzer usw. Aber am Ende des Tages ist meine gesamte Infrastruktur auf einer Controlplane zusammengeführt, welche nur von meinem Heimnetzwerk aus erreichbar ist und wenn jemand an diese herankommt, dann hat die Person Vollzugriff. Vom Homeassistant bis Webserver ist dann nichts mehr sicher... Das gilt es nach Möglichkeit für mich zu verhindern...

Aus diesem Grund habe ich überlegt, wie ich die Sicherheit meiner Infrastruktur weiter verbessern kann und habe mich für die Erweiterung meiner KeePass Installation entschieden.

KeePass bietet die Möglichkeit Dateien innerhalb der KeePass Database zu speichern. Diese sind automatisch verschlüsselt (innerhalb der Datenbank) - lediglich im RAM sind diese NICHT verschlüsselt, sondern im "Klartext" ausgelagert... Da ich jeden Key ohnehin zusätzlich verschlüsselt habe, ist diese Lösung jedoch um ein vielfaches besser, als mein derzeitiger Filesync Ansatz. Zudem muss erstmal jemand an einen memory dump von mir kommen... Passiert das habe ich ohnehin andere Probleme ^^.

In diesem Beitrag werde ich daher zeigen, wie KeePass dazu genutzt werden kann, alle Art von schützenswerten Dateien in der KeePass zu verschlüsseln und im Fall von SSH Keys zum Beispiel automatisches Laden in Putty zu ermöglichen.

Disclaimer

Dieser Beitrag zeigt weder die beste Lösung, die sicherste Lösung, noch die "einzig richtige" Lösung. Ich habe meine Infrastruktur über die Jahre stark an mich angepasst, weshalb ich viele Vorteile in meiner täglichen digitalen Welt genieße (zum Beispiel die Änderung von Webserver Daten ohne mich Anmelden zu müssen, dies geht direkt aus meinem Heimnetzwerk heraus). Dementsprechend passe ich auch diese Lösung an meine Bedürfnisse an. In diesem Fall werde ich zum Beispiel Putty dazu bringen die SSH-Keys automatisch aus der KeePass zu laden und zu verwenden.

Diese Lösungen müssen auf dich aber nicht zutreffen. Ich übernehme keine Haftung wegen Schäden, verloren gegangenen Keys oder sonstigem.

Einige Teile dieses Beitrags müssen auf persönliche Daten angepasst werden. Von daher bitte Lesen.

Das Grundgerüst - KeePass Attachments

Wie eingangs erwähnt, unterstützt KeePass von Haus aus Dateien. Dementsprechend können Daten jeglicher Art (PDF, Text oder auch keys) in der Datenbank gespeichert werden. Dies geht relativ Intuitiv unter den jeweiligen Einträgen > Advanced > File Attachments

Hier können Dateien jeder Art gespeichert werden. In meinem Fall werden dort nun je die Keys für die Accounts eingespeichert. Das sieht dann in meinem Fall wie folgt aus

Sobald die jeweiligen Dateien angehangen sind, ist KeePass im Grundsatz fertig. Theoretisch könnte jetzt bereits Putty damit verwendet werden, indem die Dateien jedesmal beim Aufrufen exportiert werden, aber das ist maximal unkomfortabel, weshalb ich mir mit einem Plugin behelfen werde.

KeePass - KeePass Agent installieren

Um die SSH Keys später automatisch an Putty übergeben zu können, wird das Plugin "KeeAgent" benötigt.

Dieses kann unter dem zuivor aufgeführten Link heruntergeladen werden. Die "KeeAgent.plgx" Datei kann dann im KeePass Plugins Ordner abgelegt werden. Das sieht dann wie folgt aus

Nachdem dies geschehen ist, muss KeePass einmal geschlossen und wieder geöffnet werden.

KeeAgent konfigurieren

Zuletzt muss nun für jeden Key der jeweilige Eintrag angepasst werden, sodass KeeAgent auf die Daten Zugriff erhält und an Putty den Key weitergeben kann.

Dafür muss erneut der betroffene Eintrag mit dem Key bearbeitet werden. In der Registerkarten Auswahl gibt es nun ganz Rechts den Reiter "KeeAgent". Hier muss man draufklicken und erhält einen neuen Dialog, welcher wie folgt konfiguriert werden muss:

1. KeeAgent den Zugriff auf die Daten dieses Entries gestatten

2. KeeAgent den korrekten Key für den Zugang zuweisen

KeeAgent für dritt Programme verfügbar machen

Damit andere Programme, wie Putty den Schlüssel durch KeeAgent verwenden können, muss zuerst der AgentMode für den jeweiligen Eintrag aktiviert werden.

Dafür muss in das Menü utner Tools > KeeAgent navigiert werden. Hier kommt, wenn es giut läuft direkt der Eintrag mit dem Zertifikat, welches ihr gerade angelegt habt. Das sieht dann wie folgt aus:

Putty zur Nutzung von KeeAgent konfigurieren

Zuletzt fehlt noch ein Drittprogramm, welches das Zertifikat verwenden kann. In diesem Fall ist es Putty.

Das geht in diesem Fall recht simpel.

In Putty wird zuerst das Profil geladen, welches verwendet werden soll (oder erstellt). Wichtig ist, dass hier unter dem Punkt SSH > Auth > Credentials > Private Key - Keine Datei verlinkt ist.

Dementsprechend sind grundsätzlich nur die Adresse im Profil verfügbar. Zuletzt muss nun der Login Name verfügbar gemacht werden, dafür wird unter Connection > Data > Auto-login username der Benutzer angegeben werden, welcher für das Zertifikat verwendet wird.

Im folgenden nutzt Putty ab jetzt das zertifikat aus KeePass heraus und fügt auch das Passwort des Schlüssel automatisch ein. Das sieht in meinem Fall dann wie folgt aus


Back…