每当我登录 Ubuntu Lucid Lynx 10.04 时,我都会收到一个 Seahorse/gnome-keyring 提示,告诉我一个应用程序想要访问我的密钥环。它不是网络管理员,因为如果我取消请求,我的网络连接仍然建立(而且,这只是最近才开始发生)。我如何知道哪个应用程序发出了这个请求?提示不提供此信息。
我想在 gnome-keyring 中保存一个 SSH 密钥密码,然后在需要时自动使用它。
这该怎么做?
我正在使用 Linux Mint,并且似乎无法在登录时自动解锁 gnome-keyring。
我的问题的一个症状如下:
$ ssh-add
Identity added: /home/me/.ssh/id_rsa (/home/me/.ssh/id_rsa)
$ git pull
WARNING: gnome-keyring:: couldn't connect to: /tmp/keyring-Nmf3J3/pkcs11: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我怎样才能让 git 可以在没有我输入任何密码的情况下推/拉?
我意识到 gnome-keyring 和 ssh-agent 有几件事情,但一直无法确定。
ssh-add在会话期间运行意味着不再要求我提供 SSH/git 的密码。
问题是我需要ssh-add在每个会话期间运行- 我一定错过了如何在登录时解锁 Gnome 的钥匙圈。
$ export | grep GNOME
GNOME_KEYRING_CONTROL=/tmp/keyring-hjMM4V
GNOME_KEYRING_PID=1961
Run Code Online (Sandbox Code Playgroud)
它在与第一次编辑相同的会话期间再次发生。我做了git pull并得到了WARNING: gnome-keyring:: couldn't connect to: /tmp/keyring-hjMM4V/pkcs11: No such file or directory。
$ env | grep SSH
SSH_AGENT_PID=2116
SSH_AUTH_SOCK=/tmp/ssh-OACxJMBY2038/agent.2038
$ ps -fp $SSH_AGENT_PID
UID PID PPID …Run Code Online (Sandbox Code Playgroud) 我的用例是我有一个执行软件开发的无头服务器。我通常为到它的 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 总线。
我找到了其他人针对此问题发布的两种解决方案,尽管它们都不适合我。
当连接到现有的 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 …
我有一台运行 debian sid 的新机器,我在上面生成了一个新的 ssh 密钥对。我想找到一种方便的方法,使用我的旧 Ubuntu 机器及其密钥对将这个新密钥对复制到其他各种机器。我已禁用所有“远程”计算机的密码登录,因此我想使用旧计算机作为中间设备。在研究这个问题时,我发现了的手册页中作为示例ssh-copy-id给出的确切情况。我按照示例访问 pi 零 running pihole,但在帖子标题中出现错误。
总结该示例中的步骤,debian具有新密钥对的计算机在哪里,sarp.lan具有旧密钥对的计算机在哪里,并且pihole是“远程”计算机,我做了:

但是,运行时ssh -v pihole,我确实看到了输出
debug1: Server accepts key: /home/sarp/.ssh/id_rsa RSA SHA256:V74Y4EhlszaIzco6oxOtl86ALj/U8rhXO2XUpEftZLU agent
Run Code Online (Sandbox Code Playgroud)
我阅读了有关该主题的各种帖子,但没有一个解决方案适合我。以下是我尝试过的一些细节/事情:
.ssh/
echo $SSH_AUTH_SOCKreturns /tmp/ssh-a8Ol5O0XY9Fv/agent.1326,并且我没有看到 keyring 守护进程正在运行ps aux。ssh-add -l正确显示第一张图片中可以看到的两个按键(一个来自旧机器,另一个来自新机器).ssh/config从旧机器复制了,所以主机名/用户名/等。应该没事。让我知道我是否应该提供额外的有用信息,如果这是非常明显的事情,我深表歉意,但我在这里错过了什么?
我正在尝试使用该secret-tool命令在正在运行的无头 CentoS 7.5.1804 Docker 容器中安全地存储秘密,但似乎无法找到使这项工作成功所需的包和/或配置。
具体来说,我希望能够运行此命令:
printf "aPassword" | secret-tool store --label="test" foo bar
Run Code Online (Sandbox Code Playgroud)
并且能够通过运行来查看该密码:
secret-tool lookup foo bar
Run Code Online (Sandbox Code Playgroud)
当我运行secret-tool store命令时,我得到这个:
printf 'aPassword' | secret-tool store --label="test" foo bar
** Message: Remote error from secret service: org.freedesktop.DBus.Error.UnknownMethod: No such interface 'org.freedesktop.Secret.Collection' on object at path /org/freedesktop/secrets/collection/login
secret-tool: No such interface 'org.freedesktop.Secret.Collection' on object at path /org/freedesktop/secrets/collection/login
Run Code Online (Sandbox Code Playgroud)
我关注了ArchLinux Gnome/Keyring wiki 页面,并尝试通过以下步骤在 CentOS Docker 容器上执行相同操作:
docker run --privileged -it centos:centos7.5.1804 /bin/bash
# remainder of commands are …Run Code Online (Sandbox Code Playgroud) 每次我运行 Chrome 时,它都会要求提供 Default 的密钥环密码。如果我输入密码或按取消,它就会消失,我可以继续。
那么,钥匙圈有什么作用,用我的密码解锁或按取消有什么区别?
我正在尝试定期重新启动一些程序(mail-notification和stalonetray),因为它们似乎经常死机。我想设置在 NetworkManager 重新连接时重新启动它们。因此,我让它们由 中的脚本触发/etc/NetworkManager/dispatcher.d/。
我可以创建一个脚本,如下所示。
#!/bin/bash
sudo -u foo_user pkill mail-notificati -x
sudo -u foo_user DISPLAY=:0 mail-notification &
Run Code Online (Sandbox Code Playgroud)
如果我直接以用户身份运行它,效果很好。但是,如果我从 root 的脚本调用它,它就会失败。系统提示我输入密码mail-notification;它无法读取 Gnome 密钥环。
我怎样才能以foo_user各种方式运行这个程序?
我正在摆脱gnome-keyring作为 SSH 代理的身份。
rm-ed 所有与 SSH 相关的自动启动内容。最后一件事神奇地起作用了,因为那里不再有代理的套接字:
/run/user/[uid]/keyring/ssh
Run Code Online (Sandbox Code Playgroud)
剩下的问题是,尽管我获得美妙的上述结果,一些在gnome-keyring仍然坚持设置SSH_AUTH_SOCK到现在 不存在上述插座。就像僵尸一样,这些东西永远不会死。
什么是设置该变量以及它在哪里完成?
我希望那个东西应该被禁用。
这个问题似乎被问了十亿次,但我仍然完全无法自动解锁我的登录密钥环。
我沿着这些行自动登录、chvt 和 startx到 i3wm,然后启动修改后的 i3lock。我真的希望我的 gnome 登录密钥环在我登录时(或者当我解锁 i3lock 时)自动解锁,但我无法成功实施我在网上找到的任何说明。
该牌坊维基有关于这个我试过,但未能做一个整体的事情。我还环顾了其他各种具有类似说明的问题/答案,但无济于事。
我注意到的一件奇怪的事情是我无法通过echo $LOGINPASSWORD | gnome-keyring-daemon --unlock. journalctl报告
Jul 07 20:08:16 ERIS gnome-keyring-daemon[26585]: failed to unlock login keyring on startup
Run Code Online (Sandbox Code Playgroud)
当我打开 seahorse 手动解锁时,它报告登录密码已更改并要求我输入旧密码。journalctl 报告
Jul 07 20:08:43 ERIS gnome-keyring-daemon[26585]: fixed login keyring password to match login password
Run Code Online (Sandbox Code Playgroud)
之后我无法用我的密码再次解锁钥匙圈(幸运的是我事先做了备份)。
这里有一些相关的/etc/pam.d/文件,希望这里没有敏感内容,哈哈(为简洁起见,删除了评论,顺序不变。请注意,我也尝试了这个 .xinitrc 位,但它没有做任何事情)。我手动添加的唯一内容是pam_gnome_keyring.so位,除了/etc/pam.d/i3lock 中的内容;其他任何东西都已经存在,无论是默认情况下还是由于其他一些包。
/etc/pam.d/login
auth optional pam_faildelay.so delay=3000000
auth [success=ok new_authtok_reqd=ok …Run Code Online (Sandbox Code Playgroud)