我该如何解决这个 ssh-agent 问题?

eoi*_*noc 18 ssh git gnome-keyring ssh-agent

我正在使用 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  C STIME TTY          TIME CMD
eoin      2116  2038  0 09:47 ?        00:00:00 /usr/bin/ssh-agent /usr/bin/dbus-launch --exit-with-session x-session-manager
Run Code Online (Sandbox Code Playgroud)

Sté*_*las 2

应该发生的是:

您启动一个 gnome 会话,其中一部分 gnome-keyring 守护进程(也充当 ssh 代理)启动,并且在该 gnome 会话期间启动的任何内容的环境都会更新有关如何联系该 ssh 代理的信息。您以图形方式登录时发出的密码用于解锁默认密钥环。

当您使用 gnome-keyring 作为 ssh 代理时,您不想使用其他代理,例如ssh-agent.

当您的 X 会话终止时,gnome-keyring 也会终止。但你的 tmux 会话仍然存在。然后,即使您启动另一个 gnome-keyring 或 ssh-agent,已经启动的进程的环境也将tmux无法与其通信,除非您使用新套接字的路径更新它们的环境。

你可以做的是:

gnome-keyring-daemon -r > ~/.gkr
Run Code Online (Sandbox Code Playgroud)

. ~/.gkr在您想要使用新的 gnome-keyring 的所有 shell 中执行此操作

请注意 gnome-keyring-daemon 将连接到哪个 DISPLAY。