Schlüsselbund des automatisch angemeldeten Benutzers entsperren

Schlüsselbund des automatisch angemeldeten Benutzers entsperren

Ich möchte remote auf meinen GNOME-Desktop zugreifen können. Das Problem besteht darin, dass die Bildschirmfreigabe von GNOME den Schlüsselbund zum Speichern des Kennworts verwendet. Damit die Freigabe funktioniert, muss der angemeldete Benutzer daher den GNOME-Schlüsselbund entsperren.

Mein Problem ist, dass ich die automatische Anmeldung aktiviert habe und daher mein Schlüsselbund gesperrt bleibt, wenn das System startet und der Desktop angezeigt wird. Ich kann die Bildschirmfreigabe über die CLI über eine SSH-Verbindung mit folgendem starten:

# allow screen control
gsettings set org.gnome.desktop.remote-desktop.vnc view-only false
# use password authentication for VNC
gsettings set org.gnome.desktop.remote-desktop.vnc auth-method 'password'
# start sharing service
systemctl --user start gnome-remote-desktop 

Leider schlägt der Passwortaustausch fehl, wenn ich versuche, eine Verbindung herzustellen, da gnome-remote-desktop nicht auf den Schlüsselbund zugreifen kann. Ich habe versucht, das Passwort von SSH mit secret-tool auf ein neues Passwort festzulegen, aber ich erhalte dieselbe Fehlermeldung:

$ echo -n "random_pass" | secret-tool store --label="GNOME Remote Desktop VNC password" "xdg:schema" "org.gnome.RemoteDesktop.VncPassword"
secret-tool: Cannot create an item in a locked collection

Ich habe versucht, den Schlüsselbund über die Befehlszeile zu entsperren, aber das scheint nicht zu funktionieren:

$ read -p "Enter your password: " -s pw && ( echo $pw | gnome-keyring-daemon --unlock )
Enter your password: SSH_AUTH_SOCK=/run/user/1000/keyring/ssh

Ich kann mit secret-tool immer noch nicht auf den Schlüsselbund zugreifen. Ich habe auch ein Paket namens installiert, dnf install python3-keyringaber es funktioniert auch nicht beim Entsperren:

[user@fedora ~]$ keyring set "xdg:schema" "org.gnome.RemoteDesktop.VncPassword"
Password for 'org.gnome.RemoteDesktop.VncPassword' in 'xdg:schema':
Traceback (most recent call last):
  File "/usr/bin/keyring", line 33, in <module>
    sys.exit(load_entry_point('keyring==21.8.0', 'console_scripts', 'keyring')())
  File "/usr/lib/python3.10/site-packages/keyring/cli.py", line 133, in main
    return cli.run(argv)
  File "/usr/lib/python3.10/site-packages/keyring/cli.py", line 88, in run
    set_password(service, username, password)
  File "/usr/lib/python3.10/site-packages/keyring/core.py", line 60, in set_password
    get_keyring().set_password(service_name, username, password)
  File "/usr/lib/python3.10/site-packages/keyring/backends/SecretService.py", line 87, in set_password
    collection = self.get_preferred_collection()
  File "/usr/lib/python3.10/site-packages/keyring/backends/SecretService.py", line 67, in get_preferred_collection
    raise KeyringLocked("Failed to unlock the collection!")
keyring.errors.KeyringLocked: Failed to unlock the collection!

HINWEIS: all dies ist auf Fedora 35

Um es noch einmal zusammenzufassen: Meine Frage lautet: Wie entsperre ich den Schlüsselbund eines Benutzers, der sich beim Booten automatisch angemeldet hat, und zwar nur mithilfe einer über eine VPN-Verbindung erstellten SSH-Shell?

EDIT: Ich habe vergessen, etwas Wichtiges zu erwähnen. Das Entfernen des Schlüsselbundkennworts (so dass es ungeschützt ist) behebt das Problem, aber hier geht es darum, ein Schlüsselbundkennwort beizubehalten.

Antwort1

Ich habe endlich eine praktikable Lösung gefunden indieser Beitrag von UNIX Stackexchange. Erstellen Sie im Grunde ein Skriptdie beschafft werden müssenvon einer SSH-Remote-Anmeldesitzung:

echo 'NOTE: This script will only work if launched via source or .' >&2
echo -n 'Login password: ' >&2
read -s _UNLOCK_PASSWORD || return
killall -q -u "$(whoami)" gnome-keyring-daemon
eval $(echo -n "${_UNLOCK_PASSWORD}" \
           | gnome-keyring-daemon --daemonize --login \
           | sed -e 's/^/export /')
unset _UNLOCK_PASSWORD
echo '' >&2

verwandte Informationen