![Lösung: Deaktivieren Sie Gnome-Keyring mit dpkg-divert](https://rvso.com/image/1048326/L%C3%B6sung%3A%20Deaktivieren%20Sie%20Gnome-Keyring%20mit%20dpkg-divert.png)
Ich möchte nicht, dass Gnome-Keyring meine Git-Commits behindert, teilweise weil es den gesamten Bildschirm sperrt, während es nach einem Passwort fragt, sogar unter KDE (obwohl ich jetzt auf GNOME umgestiegen bin). Obwohl ich den Komfort schätze, nicht jedes Mal meine SSH-Passphrase eingeben zu müssen, macht das Springen von Fenster zu Fenster das für mich persönlich zunichte. Es ist einfach eine Komfortsache :/
Ich habe git config --global --unset credential.helper
und versucht git config --system --unset credential.helper
, aber sie scheinen keine Wirkung zu haben. Da ich jetzt GNOME verwende, möchte ich gnome-keyring lieber nicht entfernen. Gibt es eine andere Möglichkeit, die ich nutzen kann? Ich verwende derzeit Ubuntu 14.10 und habe dies sowohl mit Kubuntu als auch mit Ubuntu GNOME gemacht. Danke.
UPDATE 17. November 2014
Dies betrifft anscheinend alle SSH. Ich habe versucht,
sudo rm /etc/xdg/autostart/gnome-keyring-ssh.desktop
aber das hat nicht funktioniert. Ich KANN
gnome-keyring-daemon --replace -c pkcs11,secrets,gpg
einmal pro Sitzung, aber ich würde das gerne dauerhaft beibehalten. Suche immer noch ...
Antwort1
Kopieren Sie einfach die entsprechende .desktop
Datei von /etc/xdg/autostart
nach ~/.config/autostart
und fügen Sie Hidden=true
hinzu:
(cat /etc/xdg/autostart/gnome-keyring-ssh.desktop; echo Hidden=true) > ~/.config/autostart/gnome-keyring-ssh.desktop
Dannneu laden Gnome-Shell(Drücken Sie Alt+ F2, geben Sie dann ein rund drücken Sie Enter).
Das ist das einzigebenutzerfreundliche Lösungdas hat bei mir funktioniert (d.h. ich musste nicht den Softlink für.desktopDatei in/dev/nulloder chmod 0
die gnome-keyring-daemon
). Tatsächlich ist Softlinking zu/dev/nullhat bei mir in GNOME 3.16 nicht mehr funktioniert.
Der Verdienst geht annus.
Antwort2
Ich kann nicht für andere Ubuntu-Versionen als Trusty sprechen – und GNOME ist ein sich ständig veränderndes Ziel, sodass Sie sicher sein können, dass jede Version anders sein wird – aber das hier funktioniert meiner Erfahrung nach am zuverlässigsten:
mkdir -p ~/.config/autostart
cp /etc/xdg/autostart/gnome-keyring-ssh.desktop ~/.config/autostart/
echo "X-GNOME-Autostart-enabled=false" >> ~/.config/autostart/gnome-keyring-ssh.desktop
Zumindest der Sitzungsstart unter Unity und höchstwahrscheinlich auch unter GNOME3 ist seltsam: Upstart-Skripte werden ausgeführt /usr/share/upstart/sessions/
und anschließend alle Autostart-Desktopeinträge unter /etc/xdg/autostart
und ausgeführt gnome-keyring
, und viele andere Dinge sind in beiden (und wahrscheinlich werden Dinge /usr/share/upstart/xdg/autostart
auch in ausgeführt; das habe ich nicht getestet).
Der gnome-keyring-ssh
Upstart-Eintrag sucht X-GNOME-Autostart-enabled=false
entweder im lokalen .desktop-Eintrag des Systems oder des Benutzers nach dieser Zeile und führt einen Rückzieher aus. Anschließend ssh-agent
wird die Standardsitzung ausgeführt. Der systemweite Eintrag gnome-keyring-ssh
wird dann gestartet, /etc/xdg/autostart
es sei denn, Sie haben einen entsprechenden Eintrag in Ihrem lokalen Autostart-Eintrag des Benutzers. In diesem Fall wird dieser stattdessen ausgeführt.
Früher reichte es aus, diese enable=false
Zeile einfach im lokalen Autostart zu haben, aber irgendwann vor Kurzem (also seit Mai 2016, also über zwei Jahre nach Beginn der LTS-Phase von Trusty) hat sich dieses Verhalten geändert und man braucht so etwas wie einen vollständigen Eintrag. Ich untersuche immer noch den genauen erforderlichen Schlüsselsatz und das dafür verantwortliche Paketupdate.
Warum die GNOME-Leute nicht einfach den OpenSSH-Schlüsselagenten per Proxy kontaktiert haben, istjedermanns Vermutung. Sie können ihnen vorschlagen, sich vernünftiger zu verhaltenin diesem Bugzilla-Eintrag.
Antwort3
Schöne, saubere Möglichkeit, nur die SSH-Agent-Komponente von Gnome-Kerying zu deaktivieren:
gconftool-2 --set --type bool /apps/gnome-keyring/daemon-components/ssh false
Antwort4
Lösung: Deaktivieren Sie Gnome-Keyring mit dpkg-divert
sudo dpkg-divert --local --rename /usr/bin/gnome-keyring-daemon
Wenn Sie sich das nächste Mal anmelden, ist es weg. Diese eine Zeile ist alles, was Sie brauchen, aber lesen Sie weiter, um eine Erklärung und Warnungen zu erhalten.
Kurze Erklärung
Diese Lösung benennt das Programm in gnome-keyring-daemon.distrib um, sodass es nicht gefunden werden kann.
Wenn Sie sich anmelden, werden Kennwortanforderungen direkt an ssh-agent weitergeleitet, anstatt dass gnome-keyring versucht, die SSH-Integration zu handhaben. Sie können Ihren SSH-Schlüssel für Git-Commits mit dem üblichen ssh-add
Befehl entsperren.
Vorbehalte und Reue
Gnome Schlüsselanhänger ist tiefverflochtenmit dem Gnome-Desktop. Ohne ihn funktionieren einige Dinge möglicherweise nicht mehr, bis ein Ersatz installiert wird.
So aktivieren Sie den Gnome-Schlüsselbund erneut
sudo dpkg-divert --remove --rename /usr/bin/gnome-keyring-daemon
Möglicherweise verwenden Sie den Gnome-Schlüsselring, ohne es zu wissen
Viele Anwendungen, die Ihre Passwörter speichern können, wie Chromium und Evolution, verschlüsseln sie mit einem Hauptschlüssel, der in Gnome Keyring gespeichert ist. Durch das Deaktivieren von Gnome Keyring wird der Zugriff auf alle gespeicherten Passwörter verhindert. Es ist eine gute Idee, vor dem Deaktivieren von Gnome Keyring eine Sicherungskopie der gespeicherten Passwörter zu erstellen.
Sichern des Gnome-Schlüsselbunds
Sie können Ihre Schlüssel sichern, indem Sie die Dateien in ~/.local/share/keyrings/ kopieren. Die Geheimnisse sind verschlüsselt, daher möchten Sie sie je nach Ihren Sicherheitsvorstellungen möglicherweise als Klartext sichern. Verwenden Sie dazu das Programm „Passwords and Keys“ (auch bekannt als „Seahorse“), um vorübergehend ein leeres Passwort für den Login-Schlüsselbund festzulegen. (Tipp: Seahorse verbirgt die Option zum Ändern des Passworts im Kontextmenü, das Sie mit der rechten Maustaste aufrufen.)
Achtung: Passwörter können im Klartext gespeichert werden
Chromium und Google Chrome verlassen sich auf einen Daemon namens „Secret Service“, um einen Verschlüsselungsschlüssel für gespeicherte Passwörter zu erhalten. Wenn Secret Service fehlt, was der Fall sein wird, sobald Sie Gnome Keyring deaktivieren, werden Ihre Passwörter gespeichertunverschlüsselt. Anders als Firefox bieten Chromium-basierte Browser derzeit keine Möglichkeit, ein primäres Passwort manuell festzulegen.
Integration des Geheimdienstes von Freedesktop.org
Gnome Keyring ist nur eines der Programme, die als Secret Service-Daemon fungieren können. Um sicherzustellen, dass gespeicherte Passwörter in Chromium und Evolution verschlüsselt sind, können Sie keepassxc installieren und Secret Service in den Einstellungen aktivieren.
Weitere Erläuterung
Warum nicht einfach chmod
oder verwenden mv
?
Änderungen über chmod oder mv werden rückgängig gemacht, wenn das System aktualisiert wird. Durch die Verwendung von dpkg bleibt diese Lösung bei allem bestehen, sogar bei einem Upgrade auf eine neue Version von Ubuntu.
Gibt es einen weniger drastischen Weg?
Zum Zeitpunkt des Schreibens scheint es nicht möglich zu sein, Gnome Keyring anzuweisen, weiterhin die Secret Service Integration bereitzustellen und nicht mehr mit ssh-agent herumzuspielen. Für viele Leute wäre das ideal, daher wird Gnome diese Option hoffentlich in Zukunft hinzufügen.
Warum andere Methoden nicht funktionieren
Im Laufe der Jahre wurden viele verschiedene Lösungen vorgeschlagen, die in der nächsten Version jedoch nicht mehr funktionierten. Hier ist eine kurze Zusammenfassung der Gründe dafür.
Gnome-Schlüsselbund konfigurieren
Die ideale Lösung wäre, Gnome Keyring so zu konfigurieren, dass es das Richtige tut. Es gibt tatsächlich eine Befehlszeilenoption --components
, die fast funktioniert. Damit kann man angeben, welche Komponenten initialisiert werden sollen:
gnome-keyring-daemon --components secrets,ssh,pkcs11
Man könnte ssh aus der Liste weglassen, und theoretisch würde es die SSH-Authentifizierung nicht durcheinander bringen. Leider war das nicht meine Erfahrung. Vielleicht lag das Problem darin, dass gnome-keyring von mehreren Standorten aus gestartet wurde (siehe unten), aber kurz gesagt: Es gibt keine Möglichkeit, Gnome Keyring anzuweisen,niemalsLaden Sie die SSH-Komponente, nur um zu sagennicht jetzt.
Geeignet zum Entfernen des Gnome-Schlüsselbunds
Die offensichtliche Lösung, das Paket gnome-keyring zu entfernen, deinstalliert auch alle Pakete, die davon abhängen, einschließlich gnome-core. Es gibt zwar Möglichkeiten, dies zu umgehen, aber es kann leicht passieren, dass versehentlich die gesamte GNOME-Desktopumgebung deinstalliert wird.
Mehrere Angriffsvektoren
Einer der Gründe, weshalb der Gnome-Keyring-Daemon so schwer zu beenden ist, besteht darin, dass er bei der Anmeldung über (mindestens) vier verschiedene Methoden gestartet wird, von denen jede auf eine bestimmte Weise deaktiviert werden muss.
- PAM (Pluggable Authentication Modules) in /etc/pam.d/gdm-password
- Systemd-Benutzerdienst und Socket
- systemd-Benutzer session.slice in /usr/share/dbus-1/services/
- XDG-Autostart in /etc/xdg/autostart/gnome-keyring-*.desktop