Wie entleere ich den Inhalt des Schlüsselbunds aus der Shell?

Ich teste die folgende Befehlszeile im Terminal:

sudo security dump-keychain -d login.keychain

die ich verwenden möchte, um alle meine Passwörter in einer Datei zu speichern.

Wenn ich es jedoch ausführe, werde ich bei jedem Element immer wieder gefragt, ob ich den Zugriff erlauben möchte, obwohl ich „Immer zulassen“ ausgewählt habe.

Gibt es eine Problemumgehung?

hast du versucht "sudo su security dump-keychain -d /Users/YourUsername/Library/Keychains/login.keychain"
@Buscar웃 Dasselbe gilt für sudo.
Unter apple.stackexchange.com/a/439911/1860 finden Sie ein modernes Tool, Keysafe , das eine Schlüsselbunddatei exportieren kann, ohne zur Eingabe eines Passworts pro Element aufgefordert zu werden.

Antworten (2)

Es gibt das von Juuso Salonen geschriebene Tool Keychaindump , ein Proof-of-Concept-Tool zum Lesen von OS X-Schlüsselbundkennwörtern als Root.

Grundlegende Verwendung:

$ sudo ./keychaindump ~/Library/Keychains/login.keychain

Beispielausgabe:

$ sudo ./keychaindump 
[*] Searching process 15 heap range 0x7fa809400000-0x7fa809500000
[*] Searching process 15 heap range 0x7fa809500000-0x7fa809600000
[*] Searching process 15 heap range 0x7fa809600000-0x7fa809700000
[*] Searching process 15 heap range 0x7fa80a900000-0x7fa80ac00000
[*] Found 17 master key candidates
[*] Trying to decrypt wrapping key in /Users/juusosalonen/Library/Keychains/login.keychain
[*] Trying master key candidate: b49ad51a672bd4be55a4eb4efdb90b242a5f262ba80a95df
[*] Trying master key candidate: 22b8aa80fa0700605f53994940fcfe9acc44eb1f4587f1ac
[*] Trying master key candidate: 1d7aa80fa0700f002005043210074b877579996d09b70000
[*] Trying master key candidate: 88edbaf22819a8eeb8e9b75120c0775de8a4d7da842d4a4a
[+] Found master key: 88edbaf22819a8eeb8e9b75120c0775de8a4d7da842d4a4a
[+] Found wrapping key: e9acc39947f1996df940fceb1f458ac74b877579f54409b7
xxxxxxx:192.168.1.1:xxxxxxx
xxxxxxx@gmail.com:login.facebook.com:xxxxxxx
xxxxxxx@gmail.com:smtp.google.com:xxxxxxx
xxxxxxx@gmail.com:imap.google.com:xxxxxxx
xxxxxxx:twitter.com:xxxxxxx
xxxxxxx@gmail.com:www.google.com:xxxxxxx
xxxxxxx:imap.gmail.com:xxxxxxx
...

Andere Werkzeuge:

Siehe auch:

Sie verdienen 100 positive Stimmen und der Ersteller verdient 1000!
Schade, dass dieses Programm nicht auf Mojave funktioniert.

Dies ist eine einfache Aufgabe für AppleScript. Stellen Sie zunächst sicher, dass Sie die Standardausgabe in eine Datei umleiten, indem Sie Folgendes tun sudo security dump-keychain -d login.keychain > ~/Desktop/loginKeychain.txt. Bevor Sie diesen Befehl ausführen, öffnen Sie den Skripteditor, er sollte darin sein /Applications/Utilities/und fügen Sie Folgendes ein:

tell application "System Events"
repeat while exists (processes where name is "SecurityAgent")
    tell process "SecurityAgent"
        click button "Allow" of window 1
    end tell
    delay 0.2
end repeat
end tell

Starten Sie nun den dump-Befehl und klicken Sie dann auf die Play-Schaltfläche oben im Skript-Editor. Dies sollte die Tasten drücken.

„Immer zulassen“ gewährt die Berechtigung, für immer auf das Schlüsselbundelement zuzugreifen, wird jedoch jeweils nur auf ein Element angewendet. Ich würde bei angeklickten Zulassen bleiben, damit jemand anderes in Zukunft ohne Ihre Erlaubnis nicht darauf zugreifen kann.

Danke, hört sich nach Workaround an, ist aber was :) Habe ich getestet und es funktioniert, allerdings musste ich die Zeile ändern auf: click button "Allow" of group 1 of window 1, sonst hatte ich den Fehler, dass der Button nicht gefunden wurde.
Eigentlich nicht genau gelöst, da die Befehlszeile auf externes Skript angewiesen ist. Ich suche etwas universelleres. Ich denke, Sie sollten auch auf die Quelle verlinken, in der Sie dieses Skript gefunden haben, wahrscheinlich von hier .
@kenorb Sie können dieses Skript auch über die Befehlszeile mit dem Befehl osascript ausführen. Ich glaube nicht, dass es möglich ist, GUI-Skripte in Bash zu erstellen.