Desbloquear el llavero del usuario que inició sesión automáticamente

Desbloquear el llavero del usuario que inició sesión automáticamente

Quiero poder acceder a mi escritorio GNOME de forma remota. El problema es que la pantalla compartida de GNOME utiliza el conjunto de claves para almacenar su contraseña. Como resultado, para que el uso compartido funcione, el usuario que inició sesión debe desbloquear el conjunto de claves de GNOME.

Mi problema es que tengo habilitado el inicio de sesión automático y, por lo tanto, mi llavero permanece bloqueado cuando se inicia el sistema y se muestra el escritorio. Puedo comenzar a compartir la pantalla desde la CLI usando una conexión SSH con:

# 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 

Lamentablemente, si intento conectarme, el intercambio de contraseñas falla porque gnome-remote-desktop no puede acceder al conjunto de claves. Intenté configurar la contraseña de SSH en algo nuevo con secret-tool pero aparece el mismo error:

$ 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

Intenté desbloquear el llavero desde la línea de comandos pero no parece funcionar:

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

Todavía no puedo conseguir la herramienta secreta para acceder al llavero. También instalé un paquete llamado dnf install python3-keyringpero tampoco se puede desbloquear:

[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!

NOTA: todo esto es en Fedora 35

En resumen, mi pregunta es: ¿Cómo desbloqueo el llavero de un usuario que inició sesión automáticamente en el arranque, usando solo un shell SSH creado a través de una conexión VPN?

EDITAR: Olvidé mencionar algo importante. Eliminar la contraseña del conjunto de claves (para que quede desprotegida) soluciona el problema, pero el punto aquí es mantener una contraseña del conjunto de claves.

Respuesta1

Finalmente encontré una solución viable enesta publicación de UNIX stackexchange. Básicamente, crea un script.que debe ser obtenidodesde una sesión de inicio de sesión remoto SSH:

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

información relacionada