gvfsd can mount, among other things, SFTP endpoints (e.g. `gio mount sftp://server/data`) and make use of ssh-agent for this. gvfsd needs to know ssh-agent's SSH_AUTH_SOCK, which xfce4-session should handle via dbus (see https://git.xfce.org/xfce/xfce4-session/commit?id=2cf63e66c0285aaeee76155f463c85d04da6addc)
However, on OpenRC Gentoo, this does not work. gvfsd will not make use of ssh-agent and instead prompt for a password.
xfce4-session will try either of these commands:
dbus-update-activation-environment --systemd SSH_AUTH_SOCK
When executed manually, the former would not work on my elogind system (The name org.freedesktop.systemd1 was not provided by any .service files), while the latter claimed successful execution (> dbus-update-activation-environment --verbose SSH_AUTH_SOCK
dbus-update-activation-environment: setting SSH_AUTH_SOCK=/tmp/ssh-vG8IPaEHAAAA/agent.2971)
But subsequently gvfsd would still not make use of the ssh-agent.
However, if gvfsd restarted with SSH_AUTH_SOCK already set in its env (or if it's inserted via gdb into a running gvfsd), gvfsd WILL make use of ssh-agent.
I cannot tell if this is a bug in gvfsd, dbus, OpenRC, elogind or something else (lack of systemd?). This bug exists on both Consolekit and elogind systems.
Also see https://gitlab.gnome.org/GNOME/gnome-session/-/issues/66
For reference, this is how I manually hackily inject SSH_AUTH_SOCK into a running gvfsd (assuming SSH_AUTH_SOCK is available in the shell it's executed in):
gdb -batch -ex "attach $(pidof gvfsd)" -ex "call (int) putenv(\"SSH_AUTH_SOCK=$SSH_AUTH_SOCK\")" -ex "detach"