如何禁用 gnome-keyring ssh 集成?

and*_*abs 10 ssh gnome keyrings git

我不希望 gnome-keyring 妨碍我的 git 提交,部分原因是它在要求输入密码时锁定了整个屏幕,即使在 KDE 上也是如此(尽管我现在已切换到 GNOME)。虽然我很欣赏不必每次都输入我的 SSH 密码的便利,但不得不从一个窗口跳到另一个窗口会亲自取消它。这只是一件舒适的事情:/

我试过git config --global --unset credential.helper和git 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
Run Code Online (Sandbox Code Playgroud)

但这没有用。我可以

gnome-keyring-daemon --replace -c pkcs11,secrets,gpg
Run Code Online (Sandbox Code Playgroud)

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

mmo*_*oya 11

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

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

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

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

幸得新加坡国立大学。

  • 这似乎不再适用于 16.04。为什么每个 Ubuntu 版本似乎都重新发明了一种新的开始方法?好老的 Xsession 怎么了?:( (5认同)

Joh*_*ton 5

除了 Trusty \xe2\x80\x94 之外,我不能代表 Ubuntu 版本,而 GNOME 是一个不断变化的目标,你可以保证每个版本都会有所不同 \xe2\x80\x94 但这就是我的意思发现最可靠的工作:

\n\n
mkdir -p ~/.config/autostart\ncp /etc/xdg/autostart/gnome-keyring-ssh.desktop ~/.config/autostart/\necho "X-GNOME-Autostart-enabled=false" >> ~/.config/autostart/gnome-keyring-ssh.desktop\n
Run Code Online (Sandbox Code Playgroud)\n\n

会话在 Unity 下启动,至少,很可能 GNOME3 也很奇怪:它将运行 Upstart 脚本,然后运行​​和/usr/share/upstart/sessions/下的所有自动启动桌面条目,并且许多其他东西都在两者中(并且它可能运行一些东西)也在中;我没有测试过)。/etc/xdg/autostartgnome-keyring/usr/share/upstart/xdg/autostart

\n\n

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

\n\n

过去,只需enable=false在本地自动启动中包含该行就足够了,但最近的某个时候(例如,自 2016 年 5 月以来,Trusty 的 LTS 期已过去两年多)行为发生了变化,您需要类似于完整条目的内容。我仍在调查所需的精确密钥集以及负责的有问题的包更新。

\n\n

任何人都在猜测为什么 GNOME 人们不直接代理到 OpenSSH 密钥代理。您可能想建议他们在此 Bugzilla 条目中采取更明智的行为。

\n


kal*_*sin 2

我总是最终卸载 gnome-keyring

sudo apt-get remove gnome-keyring
Run Code Online (Sandbox Code Playgroud)

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

卸载gnome-keyring可能会破坏 GNOME 上的很多东西,我不知道,因为我使用 Kubuntu。在 Kubuntu 上,所有消失的东西都是python-ubuntu-sso-client和ubuntu-sso-client。

  • 这么晚才回复很抱歉。这就是我认为当我拥有 Kubuntu 时我所做的(并且花了一段时间才弄清楚),但现在我不太确定。不过,就目前而言,由于密钥环是 GNOME 的一部分,删除它会删除 `ubuntu-gnome-desktop` 和其他一些相关组件(`oneconf`、`python-ubuntu-sso-client`、`seahorse` 、“software-center”和“ubuntu-sso-client”,不包括因此成为自动删除候选者的软件):/ 不过谢谢;我会投票,因为它将帮助像我一样意外陷入这种情况的非 GNOME 用户。 (2认同)

小智 2

仅禁用 gnome-kering 的 ssh-agent 组件的好、干净的方法:

gconftool-2 --set --type bool /apps/gnome-keyring/daemon-components/ssh false
Run Code Online (Sandbox Code Playgroud)

  • 有人知道上面命令的 ubuntu 16.04 版本是什么吗? (3认同)
  • 这似乎不起作用,至少现在还没有。它是否需要 GNOME 3.14 或 3.16 或 gnome-keyring-daemon 3.12+? (2认同)