如何禁用SSH和GPG的密钥环?


19

如何禁用SSH和GPG的密钥环?

我想保留wifi和其他物品的钥匙圈。我正在使用Ubuntu 12.04。


1
您不能简单地拒绝将这些密码保存在钥匙圈上吗?对于标准的ssh,除非您以我的经验特别设置,否则它将不会保存密码。
马蒂·弗里德

我不知道。有没有一种方法可以重置钥匙圈。要测试吗?主题中的标题包含Ubuntu 12.04 LTS,但@ jorge-castro对其进行了更改。
brodul 2012年

密钥环在一段时间内并没有太大变化,但为了清楚起见,我将其添加到问题中,虽然它的答案很可能适用于多个版本,但无需使标题混乱。
豪尔赫·卡斯特罗

很抱歉出现noob问题,但是您禁用SSH密钥环的动机是什么?
Stephane '18

1
@Stephane我不能为OP发言,但我不希望以任何方式公开如此重要的信息。我宁愿每次连接到某台服务器时都输入ssh密钥密码,而不是存储它的密钥环,从而允许任何程序和用户空间中的每个人任意ssh访问。当然,这对其他所有人都没有意义,但是imo的动机是可以理解的
phil294

Answers:


12

首先将文件复制/etc/xdg/autostart/gnome-keyring-ssh.desktop到中~/.config/autostart/

然后编辑~/.config/autostart/gnome-keyring-ssh.desktop以删除以下行:

NoDisplay=true

并在末尾添加以下行:

X-GNOME-Autostart-enabled=false

重新启动会话时,这应禁用SSH管理。要禁用GPG,请对file进行相同的操作/etc/xdg/autostart/gnome-keyring-gpg.desktop


Tnx,这终于解决了问题。
brodul 2012年

7

在终端会话(使用Ctrl- - Alt),T你可以通过使用ssh工作停止GNOME的钥匙圈的过程:

unset SSH_AUTH_SOCK 

--no-use-agent选项可用于gpg,以避免将gnome-keyring进程与gpg一起使用,但这是默认设置。

您可以使用以下命令停止使用gpg-agent的nautilus seahorse-tool:

rm `echo $GPG_AGENT_INFO | sed s/:0:1//`

您可以使用以下命令完全停止gnome-keyring过程:

kill $GNOME_KEYRING_PID

通过重新登录可以恢复上述每个操作。


所有用户ID可用的 Wifi密码存储在/etc/NetworkManager/system-connections/目录中,而不是存储在gnome密钥环中,因此,如果您取消了gnome-keyring进程,它们将保持可用状态。

ssh-add当密钥环进程运行时,该命令可用于从当前gnome-keyring删除(或添加)特定的密钥。

可以使用程序的Passwords选项卡Passwords and Keys(海马)从登录名或其他密钥环中删除单个密钥密码。

如果不存在gnome-keyring,则ssh-agent仍将运行,但不存储gpg密钥。


/etc/pam.d/lightdm保存登录密码和启动gnome-keyring-daemon涉及两行,其中使用登录密码解锁了登录密钥环。第二个启动守护程序:

session optional        pam_gnome_keyring.so auto_start

仅注释掉该行会阻止它使用登录密码解锁登录密钥环,从而无法启动系统所有用户的所有会话。

/etc/xdg/autostart/包含gnome-keyring可以处理的各种秘密的开始条目。要停止守护程序启动这些组件,可以将这些文件移出该目录。您可以移动所有gnome-keyring- *文件来阻止守护程序启动,或者可以简单地拒绝再次提供登录密码以在保持守护程序运行的同时禁用登录密钥环。


取消设置SSH_AUTH_SOCK即可。Tnx。有没有办法为所有会话取消设置?我将Enigmail用于Thunderbird,但enigmail存在问题(它不会忘记密码)。
brodul 2012年

有没有一种方法可以在启动时禁用密钥环。(我真的不想写一个杀死密钥环的脚本)。
brodul

我用一些可能有用的更多信息编辑了答案,但是直接在一个单独的问题中要求Enigmail规避可能会更好,因为要明确说明您想要什么。
John S Gruber 2012年

您可以通过执行刷新密钥环(忘记gpg和ssh以及其他密码)gnome-keyring-daemon -r -d。这是重新启动守护程序的简单方法。一个可能的问题是,如果它不是一开始就运行,它将启动(我不知道只有在已经运行的情况下才重新启动它的好方法,除非解析ps:/)
默默无闻

2

要阻止gnome-keyring 在Ubuntu 16.04上启动其(已损坏的)SSH代理,请执行以下操作:

mkdir ~/.config/upstart || true
echo manual > ~/.config/upstart/gnome-keyring-ssh.override

# This step can be done with the gnome-session-properties tool
mkdir ~/.config/autostart || true
cp /etc/xdg/autostart/gnome-keyring-ssh.desktop ~/.config/autostart
echo 'X-GNOME-Autostart-enabled=false' >> ~/.config/autostart/gnome-keyring-ssh.desktop

我看到您的最后一行正在利用/usr/share/upstart/sessions/gnome-keyring-ssh.conf查找该行并在导出SSH_AUTH_SOCK之前立即退出的事实,我认为您不需要〜/ .config / upstart文件/目录(如果还附加Hidden=true到.desktop文件)。这基本上掩盖了所有台式机的“真实”(系统)快捷方式,即使那些通常适用于GNOME / Unity的快捷方式也是如此。我一直在寻找一种干净的方法来禁用gnome-keyring-ssh而不影响其他功能,因此我将对此进行测试。
dragon788

1

对于当前版本的Ubuntu,仅更改.desktop其他答案中提到的文件已不再足够。添加了一个新的启动工作它也开始了gnome-keyring-daemon。该文件位于/usr/share/upstart/sessions/gnome-keyring.conf并包含:

eval "$(gnome-keyring-daemon --start)" >/dev/null
initctl set-env --global SSH_AUTH_SOCK=$SSH_AUTH_SOCK
initctl set-env --global GPG_AGENT_INFO=$GPG_AGENT_INFO

在这里,需要限制守护进程通过添加--components=pkcs11,secrets到命令行仅提供某些服务。这些initctl行也可以删除,从而导致:

eval "$(gnome-keyring-daemon --start --components=pkcs11,secrets)" >/dev/null

1
如何在不修改系统文件的情况下为每个用户覆盖此文件?
支石墓

更改系统文件是一个坏习惯。看到我自己的答案。
2016年
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.