小编mta*_*xan的帖子

没有 x 会话的 gnome-keyring 用法

我的用例是我有一个执行软件开发的无头服务器。我通常为到它的 SSH 连接启用 X11 转发,但我不能为连接速度较慢的远程位置。
我需要安全存储和缓存我的 git 凭据,因为我经常使用树中的 18-20 个存储库,所以我使用 git-credential-gnome-keyring 作为 git credential.helper,它使用 libgnome-keyring 进行通信到 gnome-keyring-daemon。为了测试解决方案,我设置了一台带有显示器的 PC,确认密钥环在系统上默认工作,然后使用 SSH 进行尝试。它适用于 X11 转发,但没有它就无法工作。

当我在没有X11转发的情况下连接时,查询keyring时出现以下错误,工具回退到命令行提示:

** (process:18305): CRITICAL **: Error communicating with gnome-keyring-daemon
Run Code Online (Sandbox Code Playgroud)

调查表明,基本问题是 gnome-keyring-daemon 期望连接使用 dbus 与之对话。如果没有 X11 会话,dbus 不会启动,因此没有用于 gnome-keyring-daemon 和 libgnome-keyring 连接的公共 dbus 总线。

我找到了其他人针对此问题发布的两种解决方案,尽管它们都不适合我。

  1. 从使用 X11 的现有会话中获取 DBUS 端口
  2. 手动启动新的 DBUS 端口

当连接到现有的 DBUS 端口时,基本概念是找到现有登录会话的 PID,从 procfs 转储该 PID 的环境,搜索它DBUS_SESSION_BUS_ADDRESS,并将其导出到当前环境中。由于这是用于发布会话中所有内容所使用的 DBUS 总线的变量,因此设置它应该允许会话中的所有内容在公共 DBUS 总线上进行通信,尽管它是与不同会话相关联的总线。
来源:
https : //ubuntuforums.org/showthread.php

? t = 1059023 https://ask.fedoraproject.org/en/question/45246/error-communicating-with-gnome-keyring-daemon-in-ssh- session/

添加到我的 .bashrc …

d-bus gnome-keyring x11

15
推荐指数
1
解决办法
2484
查看次数

标签 统计

d-bus ×1

gnome-keyring ×1

x11 ×1