Ubuntu 16.04 ssh-add 没有 ssh-agent?

Ubuntu 16.04 ssh-add 没有 ssh-agent?

我已经在许多较旧的 Ubuntu 安装上配置了 ssh-agent,但是今天,在我的新 Ubuntu 16.04 设置上,我意识到 ssh-add 一直在运行,但我从未配置我的系统来运行 ssh-agent!

编辑:这不只是我没有配置它,它甚至没有运行:

ps aux | grep ssh
root       976  0.0  0.0  65520  5384 ?        Ss   16:04   0:00 /usr/sbin/sshd -D
user123+  6121  0.0  0.0  21292  1016 pts/1    S+   16:50   0:00 grep --color=auto ssh

ssh-add 在没有 ssh-agent 的情况下如何工作?这是什么魔法?我看到我的系统上有一个 gnome-keyring-daemon 在运行,但是 open-ssh 没有与 gnome 集成,是吗?

答案1

Ubuntu 使用gnome-keyring-daemon作为 SSH 代理的替代(兼容)实现。

它是通过包安装的gnome-keyring,并通过 自动启动/etc/xdg/autostart/gnome-keyring-ssh.desktop

你可以通过 查看你的 SSH 代理进程sudo lsof $SSH_AUTH_SOCK

答案2

环境变量SSH_AGENT_LAUNCHER扩展到启动的进程ssh-agent

在我的 14.04 上,默认情况下,启动后:

% echo "$SSH_AGENT_LAUNCHER"
upstart

在杀死unset变量并ssh-agent再次生成之后:

% echo "$SSH_AGENT_LAUNCHER"
## Nothing, not being set

因此,在启动时,init进程会直接或间接产生ssh-agent,并且环境变量SSH_AGENT_LAUNCHER也会相应地设置。

相关内容