如何禁用gnome-keyring ssh集成?


10

我不希望gnome-keyring妨碍我的git commit,部分原因是它甚至在KDE上也要求在输入密码的同时锁定整个屏幕(尽管我现在已切换到GNOME)。尽管我确实感谢不必每次都输入SSH密码的便利,但是必须从一个窗口跳到另一个窗口才能亲自取消它。这只是一个安慰:/

我尝试了git config --global --unset credential.helpergit config --system --unset credential.helper,但它们似乎没有作用。当我现在使用GNOME时,我不想删除gnome-keyring。我还有其他选择吗?我目前在Ubuntu 14.10上,同时使用Kubuntu和Ubuntu GNOME完成了此操作。谢谢。

2014年11月17日更新

这显然会影响所有SSH。我试着做

sudo rm /etc/xdg/autostart/gnome-keyring-ssh.desktop

但这没有用。我可以

gnome-keyring-daemon --replace -c pkcs11,secrets,gpg

每次会议一次,但我想保持永久不变。还在寻找...


有关GNOME钥匙圈拧紧原因的相关问答:askubuntu.com/q/564821/88802
gertvdijk 2015年

Answers:


10

只需将相关.desktop文件从复制/etc/xdg/autostart~/.config/autostart并添加Hidden=true到其中即可:

(cat /etc/xdg/autostart/gnome-keyring-ssh.desktop; echo Hidden=true) > ~/.config/autostart/gnome-keyring-ssh.desktop

然后重新加载 gnome-shell(按Alt+ F2,然后键入r并按Enter)。

这是唯一的用户友好的解决方案已经为我工作(即不必软链接的的.desktop文件的/ dev / null的chmod 0gnome-keyring-daemon)。实际上,在GNOME 3.16中,软链接到/ dev / null不再对我有用。

幸得新加坡国立大学


5
看来这在16.04中不再起作用。为什么在每个Ubuntu版本中都重新发明了一种新的启动方法?好的旧Xsession怎么了?:(
菲尔·弗罗斯特

有人请验证它是否适用于较新的Ubuntu / Debian / GNOME版本。
乔治·索维托夫

在Ubuntu 17.10(GNOME Wayland)中,无法再重新启动GNOME。请参阅superuser.com/q/1164174/174311。用于gnome-keyring-daemon -r -c pkcs11,secrets在当前会话中禁用它。
乔治·索维托夫

它仍然可以与Debian 9(拉伸)一起使用。
Marc Wrobel '18年

2

禁用gnome-kerying的ssh-agent组件的好方法:

gconftool-2 --set --type bool /apps/gnome-keyring/daemon-components/ssh false

2
这似乎不起作用,至少目前还没有。是否需要GNOME 3.14或3.16或gnome-keyring-daemon 3.12+?
andlabs 2015年

3
有人知道上面命令的ubuntu 16.04版本是什么吗?
Scott Stensland '16

2

除了Trusty之外,我不能说Ubuntu版本-GNOME是一个不断发展的目标,您可以保证每个版本都会有所不同-但这是我发现最可靠的方法:

mkdir -p ~/.config/autostart
cp /etc/xdg/autostart/gnome-keyring-ssh.desktop ~/.config/autostart/
echo "X-GNOME-Autostart-enabled=false" >> ~/.config/autostart/gnome-keyring-ssh.desktop

会话至少在Unity下启动,并且很可能在GNOME3下也很奇怪:它将从Upstart脚本中运行出来,/usr/share/upstart/sessions/然后在/etc/xdg/autostart和下运行所有​​自动启动桌面条目gnome-keyring,并且两者中都包含许多其他内容(并且可能会运行某些内容)在中/usr/share/upstart/xdg/autostart;我也没有对此进行测试)。

gnome-keyring-ssh新贵项将检查该X-GNOME-Autostart-enabled=false无论是在系统或用户本地的.desktop项,退了出去,然后将标准线ssh-agent的会话运行。gnome-keyring-ssh然后,/etc/xdg/autostart除非您在用户本地自动启动中有匹配的条目,否则将在整个系统范围内启动,在这种情况下,它将改为运行。

过去只需要enable=false在本地自动启动中设置该行就足够了,但是最近某个时候(例如,自2016年5月开始,到Trusty的LTS时期已经过去了两年),行为发生了变化,您需要一些类似于完整条目的内容。我仍在调查必要的精确密钥集,并对负责的软件包更新负责。

有人猜测为什么GNOME人员不仅仅代理OpenSSH密钥代理。您可能想建议他们在此Bugzilla条目中采用更明智的行为。


该链接似乎暗示不建议使用X-GNOME-Autostart-enabled = false。无论如何,似乎自动启动标准中描述的“隐藏”属性提供了相同的功能。使用Hidden = true。gist.github.com/najamelan/b44e943145b03e018229
nomadrc

2

我总是最终卸载gnome-keyring

sudo apt-get remove gnome-keyring

事实证明,如果您使用许多密钥(超过三个),您将无法真正登录到将尝试次数限制为三个的主机...。此外,gnome-keyring密钥的名称与使用时的名称不同ssh-add,因此我不知道使用什么密码短语。

卸载gnome-keyring可能会破坏GNOME上的许多内容,因为使用Kubuntu,所以我不知道。在Kubuntu上,所有消失的还有python-ubuntu-sso-clientubuntu-sso-client


1
这么晚才回复很抱歉。那就是我在拥有Kubuntu时所做的事情(并且花了一段时间才能弄清楚),但是现在我不确定。至于现在,虽然,因为钥匙圈是GNOME的一部分,删除将删除ubuntu-gnome-desktop和其他一些相关组件(oneconfpython-ubuntu-sso-clientseahorsesoftware-center,和ubuntu-sso-client,不计算变得考生的autoremove,结果软件):/谢谢您的好意; 我会投票赞成,因为它将帮助像我一样偶然遇到这种情况的非GNOME用户。
andlabs 2015年

0

我确认该脚本

#!/usr/bin/python
import gnomekeyring
gnomekeyring.unlock_sync(None,"mypassword");

解决了16.04,amd64中的问题。该脚本可以另存为ukr.py,然后在中chmod +x ukr.py添加ukr.py为启动应用程序gnome-session-properties。(附加)模块gnomekeyring通过以下方式安装

sudo apt-get install python-gnomekeyring

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.