Naf*_*Kay 6 fedora environment-variables wayland systemd gnome-shell
我正在使用 Fedora 24 (amd64),它运行 GNOME 3/GNOME Shell 作为桌面环境,使用 Wayland 作为显示服务器,使用 SystemD 作为初始化。非常标准,开箱即用,这就是 Fedora 24 的发布方式。
我之前的发行版仍在使用 X,所以我在 /etc/X11/Xsession.d/autostart 中有一个名为 90-gpg-agent 的脚本,它有条件地启动 gpg-agent 或获取其导出的变量,使它们可用于启动的图形程序. 这使得像 unison-gtk 这样的程序拥有正确的SSH_AUTH_SOCK环境变量,以便他们可以使用 gpg-agent 作为 SSH 代理。在 bash 会话中运行的任何东西都只会使用我的 .bashrc 中的环境变量,但图形应用程序需要将其导出以供访问。
是否有 Wayland/GNOME/SystemD 的等效项,它将导出这些环境变量并将它们提供给在该显示服务器 + 桌面环境中启动的应用程序?
尝试systemctl --user import-environment SSH_AUTH_SOCK在/etc/X11/xinit/xinitrc.d/. 检查出来/etc/X11/xinit/xinitrc.d/50-systemd-user.sh以供参考。
只需在 gpg 代理 \xe2\x80\x93 中启用 ssh 支持,将行添加enable-ssh-agent到~/.gnupg/gpg-agent.conf\xe2\x80\x93 并注销(然后重新登录)。
此设置由 选取/etc/X11/Xsession.d/90gpg-agent。
问题是这仅适用于 X11 程序 \xe2\x80\x93 本机 Wayland 客户端不受影响。要解决这个问题,有两种选择,具体取决于什么gpgconf --list-dirs agent-ssh-socket打印的内容:
如果它是固定路径,请创建一个文件.config/environment.d/ssh.conf并添加该输出:
SSH_AUTH_SOCK=/run/user/XXX/gnupg/S.gpg-agent.ssh\nRun Code Online (Sandbox Code Playgroud)\n\ngpgconf或打印时发生的任何其他事情。
如果您下次登录时它是位于其他位置的临时文件,请将这些行添加到您的.bashrc(或您正在使用的任何 shell 的等效项)中:
if [ -z "$SSH_AUTH_SOCK" ] ; then\n export SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)"\nfi\ndbus-update-activation-environment --systemd SSH_AUTH_SOCK\nRun Code Online (Sandbox Code Playgroud)\n\n这仅适用于 shell 以及在第一个 shell 之后启动的其他 Wayland 程序,但这应该足够了。
| 归档时间: |
|
| 查看次数: |
2322 次 |
| 最近记录: |