Wie gebe ich das Standard-Passwort für den Schlüsselbund über die Befehlszeile ein?

12

Gibt es eine Möglichkeit, das Standardkennwort für den Schlüsselbund über die Befehlszeile einzugeben?

Zum Beispiel:

Sie haben ein Remote-Setup von Ubuntu 10.10, das auf automatische Anmeldung eingestellt ist. Sie möchten das Schlüsselbundkennwort nicht entfernen.

In Ordnung, das System startet und meldet sich automatisch an. Anschließend werden Sie nach dem Schlüsselbundkennwort gefragt. Jetzt können Sie SSH-Verbindungen herstellen, aber Sie können keinen Remote-Desktop erstellen.

Was können Sie an dieser Stelle tun, um das Kennwort für den Schlüsselbund einzugeben?

Zur besseren Verdeutlichung wird dies auch über eine Remoteverbindung über die Befehlszeile ausgeführt.

Jerkofalltrades
quelle

Antworten:

10

Dank python-gnomekeyring ist das relativ einfach:

python -c "import gnomekeyring;gnomekeyring.unlock_sync(None, 'my password');"

Oder als richtiges Skript:

#!/usr/bin/env python
import gnomekeyring
gnomekeyring.unlock_sync(None, 'my password');

Ich denke, Sie müssen das Paket nicht installieren. Aber es kann nicht schaden, es zu versuchen.


Beachten Sie, dass das Speichern Ihres Kennworts auf Ihrer Festplatte ein immenses Sicherheitsrisiko darstellt. Sie sollten dies stattdessen verwenden:

#!/usr/bin/env python

import gnomekeyring
import getpass

gnomekeyring.unlock_sync(None, getpass.getpass('Password: '));

Sie können dieses Skript beispielsweise wie unlock-keyring.pyfolgt speichern :

sudo mv unlock-keyring.py /usr/bin/unlock-keyring
sudo chmod a+x /usr/bin/unlock-keyring

Von da an können Sie immer nur unlock-keyringnoch ein Passwort eingeben und zur Eingabe aufgefordert werden. Tun Sie dies nicht mit der Version, die Ihr Passwort enthält .

Sie können durch Noneden Namen Ihres Schlüsselbunds ersetzen , z. B. 'session'wenn Sie einen freigeben möchten, der nicht der Standard ist.


Es fällt mir schwer, dies richtig zu testen. Bitte lassen Sie mich wissen, wenn es nicht funktioniert, und ich werde es mir sofort ansehen. Lass es mich auch wissen, wenn es funktioniert :-)

Stefano Palazzo
quelle
1
Dieses Paket wird nicht mehr mit Ubuntu ausgeliefert :(
Grief
Hier einige Informationen von libsecret (verwendet in neuem Gnome-Schlüsselbund) man: "In libsecret können Sie Elemente direkt entsperren, und das Ergebnis ist (mit dem Gnome-Schlüsselbund-Daemon), dass die umschließende Sammlung entsperrt wird Geben Sie ein Passwort ein, um die Schlüsselringe zu entsperren. Diese werden automatisch abgefragt. "
Trauer
1

Das funktioniert definitiv !!

Nach langem Ausprobieren stellte ich fest, dass das alte feisty-Paket "pam-keyring" immer noch das "pam-keyring-tool" enthält, mit dem Sie Schlüsselringe über die Befehlszeile entsperren können. Ubuntu hat das Tool nach der Veröffentlichung aus Sicherheitsgründen aus dem Paket genommen ???

Es ist hier:-

wget https://launchpad.net/ubuntu/+archive/primary/+files/pam-keyring_0.0.8.orig.tar.gz

Packe es aus, wo du willst, dann mache: -

./configure
make

Sie machen KEINE Installation, weil Sie nicht möchten, dass das Paket zu irgendeinem Zeitpunkt aktualisiert wird.

Bearbeiten Sie anschließend die Konfigurationsdatei für die Nachanmeldung rc.local, um wie folgt auszusehen:

sudo gedit /etc/rc.local 

exec echo ENTER_YOUR_PASSWORD_HERE | /PATH_TO_PAM_KEYRING_TOOL/pam-keyring-tool --keyring=login -u -s

exit 0

Hallo Presto!

Matthew Toft
quelle
1

Vielen Dank an Stefano! Seine Antwort brachte mich auf die halbe Strecke, aber ich fand, dass die Methode standardmäßig nur funktioniert, wenn das Python-Skript auf dem lokalen Computer ausgeführt wird. Wenn Sie lokal ausgeführt werden, haben Sie Zugriff auf den Gnome-Schlüsselring. Ich wollte sein Skript über eine SSH-Sitzung ausführen können, erhielt aber weiterhin "gnomekeyring.IOerror", da auf den Schlüsselring nicht zugegriffen werden konnte. Nach langem googeln habe ich die lösung gefunden @ https://ask.fedoraproject.org/en/question/45246/error-communicating-with-gnome-keyring-daemon-in-ssh-session/

Fügen Sie Ihrem .bashrc-Skript Folgendes hinzu, um diese Seite auf den relevantesten Teil zu beschränken, der für diese Situation gilt.

# Export $DBUS_SESSION_BUS_ADDRESS when connected via SSH to enable access
# to gnome-keyring-daemon.
if [[ -n $SSH_CLIENT ]]; then
    export $(cat /proc/$(pgrep "gnome-session" -u "$USER")/environ | grep -z "DBUS_SESSION_BUS_ADDRESS=")
fi

Es ist nichts wert, dass das in dem Link angegebene Grep-Muster bei mir nicht funktioniert hat, daher ist das oben gezeigte etwas anders.

Robert
quelle
Am MInt 17.2 musste ich die gnome-session auf mate-session
umstellen