首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从gnome shell启动时,KeePassXC不会向正在运行的SSH代理添加密钥

从gnome shell启动时,KeePassXC不会向正在运行的SSH代理添加密钥
EN

Stack Overflow用户
提问于 2019-11-16 02:04:34
回答 1查看 752关注 0票数 0

我是在Pop!_OS上运行的,所以对于大多数事情来说,这可能是Ubuntu的等价物。已安装KeepassXC并启用了SSH代理。有一个配置了密钥的关键词组,当我从终端keepassxc登录启动ssh-add -l时,它就像一个护身符,然后我可以看到keepassxc列出了一个额外的密钥。一旦我关闭KeePassXC,它也会消失。太棒了!

现在我从gnome外壳启动keypassXC,按超级键,搜索keepassXC并登录到它的保管库。看着终端中的ssh-add -l:没什么。未添加密钥。?

现在,我看了一下/usr/share/applications/org.keepassxc.KeePassXC.desktop,并将Terminal=false更改为true。不,不幸的是,并不是那么容易。

我猜这与gnome外壳启动KeePassXC的方式有关,但不能确定问题出在哪里。有人知道这可能是什么或者如何解决这个问题吗?

EN

回答 1

Stack Overflow用户

发布于 2020-03-20 20:19:30

我让Unity ssh代理在Ubuntu16.04.6上工作,KeepassXC作为窗口管理器。

问题是,如果在窗口管理器启动之前未设置SSH_AUTH_SOCK环境变量,则在窗口管理器中启动的程序将无法使用该环境变量。

有些发行版有一个在窗口管理器之前启动程序的系统,比如ssh-agent。在我的发行版上,我发现/etc/X11/Xsession.d/90x11-common_ssh-agent正在启动ssh-agent。有关详细信息,请参阅this comment on a user help issue for KeepassXC

然而,我也发现GNOME Keyring正在启动自己的ssh代理。我不得不在启动应用程序中禁用它。我还检查了是否没有shell启动脚本(即..bashrc .bash_profile .profile .config/fish/config.fish正在尝试启动ssh-agent,因为这样做将替换在窗口管理器之前启动的代理。

有趣的是,您使用Ctrl+Alt+F1、Ctrl+AltF2等获得的tty也没有设置SSH_AUTH_SOCK环境变量,因为它们在窗口管理器之前启动。如果你需要它在这里,你可以添加代码来查找和设置SSH_AUTH_SOCK。对于鱼壳,我在~/.config/fish/config.fish中添加了以下内容

代码语言:javascript
复制
# Set SSH_AUTH_SOCK if not set.
if test -z "$SSH_AUTH_SOCK";
  set -gx SSH_AUTH_SOCK (find /tmp/ -path "/tmp/ssh-*/agent.*" 2>/dev/null)
end

我还发现,在即将发布的2.6.0版本的KeepassXC (计划于2020年4月3日发布)中,将添加允许覆盖的设置,或设置要用于SSH_AUTH_SOCK的值。但是,由于每次ssh-agent启动时都会发生变化,因此您需要不断地更改它,或者设置一个指向当前sock的链接。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58882455

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档