Die aktuelle Version des Apple-Betriebssystems, macOS Sierra, bringt einige Neuerungen beim SSH-Client mit sich. Standardmäßig stehen die Schlüssel nicht mehr via ssh-agent zur Verfügung und die dazugehörigen Kennwörter werden ungefragt im Schlüsselbund gespeichert. Dieser Beitrag zeigt, wie du das gewohnte Verhalten wiederherstellst.
Nach dem Update auf macOS 10.12 ist mir aufgefallen, dass ssh-add -l keine verfügbaren Schlüssel mehr anzeigt und – für mich noch lästiger – meine Passphrase anscheinend permanent gespeichert wird, ohne dass es eine sichtbare Option dafür gibt.
Dank eines Postings bei StackExchange bin ich auf eine einfache Lösung gestoßen. Um den ssh-agent wieder funktionsfähig zu bekommen, editierst du deine SSH-Konfigurationsdatei unter ~/.ssh/config, die ich in einem früheren Blogbeitrag schon beschrieben habe. Die Zeile
AddKeysToAgent yes
führt dazu, dass SSH-Schlüssel fortan wieder im Agent zur Verfügung stehen. Danach kannst du das gespeicherte Kennwort eines Schlüssels auch wieder entfernen, indem du einfach den entsprechenden Eintrag im Agent löscht:
ssh-add -K -d ~/.ssh/DeinKey
War der Vorgang erfolgreich, quittiert SSH das mit Identity removed: /Users/DeinBenutzer/.ssh/DeinKey (DeinKey) und beim nächsten Mal fragt der SSH-Client wieder nach der Passphrase.
Um beim Abmelden automatisch die Kennwörter aller SSH-Schlüssel zu entfernen, kannst du auch ein Skript erstellen – doch dazu mehr in einem separaten Blogposting, denn diese Möglichkeit muss ich mir selbst noch genauer ansehen. ;-)
Nach der Möglichkeit zum Löschen habe ich vorhin die ganze Zeit gesucht, bis ich zum Schluss dann einfach die gesamte Keychain gelöscht und neu gemacht habe.
Und jetzt finde ich einen Beitrag der mir zeigt, wie ich es innerhalb von 10 Sekunden geschafft hätte ?
Hatte übrigens bei
ssh-add -d .ssh/id_rsa
das -K vergessen, weil das für mich aus dem Text der man page nicht verständlich genug war.
Aber vielen Dank für den Beitrag, das werde ich in Zukunft nicht mehr vergessen :)
;-)
In 10.12.3 scheint sich das Verhalten übrigens wieder geändert zu haben, das habe ich mir aber noch nicht näher angesehen. Jedenfalls werde ich jetzt nach jedem Neustart nach der Passphrase gefragt.
Ich habe 10.12.3 und bei mir läuft alles ohne Passwortabfrage.
In der config habe ich allerdings folgendes stehen:
Host *
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_rsa
Dadurch musste ich den Schlüssel auch gar nicht erst mit ssh-add -K .ssh/id_rsa zur Keychain hinzufügen sondern es war alles automatisch.
UseKeyChain
ist bei mir nicht gesetzt, daran dürfte es liegen :-)Herzlichen Dank!
Gerne – und ein frohes neues Jahr! :-)