SSH-Schlüssel regelmäßig sperren, während Sie angemeldet sind

SSH-Schlüssel regelmäßig sperren, während Sie angemeldet sind

Ich verwende täglich SSH, um mich bei einigen Servern anzumelden, die ich verwalte, und verwende einen SSH-Schlüssel zum Anmelden. Da ich meinen SSH-Schlüssel mit einem Passwort generiert habe, werde ich bei der ersten Verwendung von SSH an einem Tag zur Eingabe eines Passworts aufgefordert. Ich möchte, dass dies im Laufe des Tages regelmäßig erneut gesperrt wird, sodass jemand, der Zugriff auf meinen Laptop erhält, während er eingeschaltet ist, nicht unbedingt Zugriff auf die Server erhält. Ich kann keine Option dafür finden und mir fällt auch kein Befehl zum Sperren des Schlüssels ein. Wenn es einen solchen Befehl gibt, könnte ich ihn zu crontab hinzufügen.

Die beste Option ist wahrscheinlich, einfach keinen SSH-Schlüssel zu verwenden.

Antwort1

Sie haben wahrscheinlich ein Programm namens ssh-agentausgeführt. Wenn Sie sshzu einem anderen Host wechseln, sshkommuniziert der Befehl mit diesem, ssh-agentum die Schlüssel und ihre Passphrasen beizubehalten.

Standardmäßig ssh-agentwerden die Passphrasen für immer gespeichert (bis zur Abmeldung), sodass Sie sie für jeden Schlüssel nur einmal eingeben müssen.

Der Befehlssh-addwird verwendet, um die Liste der ssh-agent bekannten Identitäten zu verwalten.

Um die Liste der bekannten Schlüssel anzuzeigen ssh-agent, geben Sie

ssh-add -l

Um es zu schaffenvergessenIhre Schlüssel und Passphrasen, Ausgabe

ssh-add -D

Wenn Sie sich dann sshbei einem Host anmelden, werden Sie erneut zur Eingabe der Passphrase aufgefordert.

Es besteht auch die Möglichkeit, eineLebensdauerfür eine Passphrase:

ssh-add -t 3600     # 1 hour

aber das hat bei mir nicht funktioniert (oder ich habe etwas falsch gemacht). Ich würde einen Cronjob einrichten, der ssh-add -Dalle N Stunden ausgeführt wird. Das könnte etwas knifflig sein, da ssh-adddie Umgebungsvariable SSH_AUTH_SOCKzur Kommunikation benötigt wird ssh-agentund diese Variable vermutlich nicht unter Cron festgelegt ist.

Allerdings sollte man, wie in einem Kommentar angemerkt, den Laptop während der Abwesenheit nicht unbeaufsichtigt lassen, sondern lieber abschließen.

Antwort2

Sie könnten einfach eine Zeile in Ihre $HOME/.bash_logoutDatei schreiben, die Ihren SSH-Schlüssel aus Ihrem ~/.ssh/Verzeichnis in ein anderes Verzeichnis verschiebt? Machen Sie dann das Gegenteil in $HOME/.bash_login.

Informationen dazu, wie dies mit systemd funktioniert, finden Sie in diesem Beitrag.

verwandte Informationen