Lösung: Deaktivieren Sie Gnome-Keyring mit dpkg-divert

Lösung: Deaktivieren Sie Gnome-Keyring mit dpkg-divert

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.helperund 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 .desktopDatei von /etc/xdg/autostartnach ~/.config/autostartund fügen Sie Hidden=truehinzu:

(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 0die 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/autostartund ausgeführt gnome-keyring, und viele andere Dinge sind in beiden (und wahrscheinlich werden Dinge /usr/share/upstart/xdg/autostartauch in ausgeführt; das habe ich nicht getestet).

Der gnome-keyring-sshUpstart-Eintrag sucht X-GNOME-Autostart-enabled=falseentweder im lokalen .desktop-Eintrag des Systems oder des Benutzers nach dieser Zeile und führt einen Rückzieher aus. Anschließend ssh-agentwird die Standardsitzung ausgeführt. Der systemweite Eintrag gnome-keyring-sshwird dann gestartet, /etc/xdg/autostartes 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=falseZeile 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-addBefehl 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 chmododer 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.

  1. PAM (Pluggable Authentication Modules) in /etc/pam.d/gdm-password
  2. Systemd-Benutzerdienst und Socket
  3. systemd-Benutzer session.slice in /usr/share/dbus-1/services/
  4. XDG-Autostart in /etc/xdg/autostart/gnome-keyring-*.desktop

verwandte Informationen