ssh-add -D 删除原始主机上的密钥

evo*_*ion 1 ssh ssh-agent

我的 macbook 上运行着一个 ssh-agent。我使用 ssh -A 并将密钥转发到我的 redhat 盒子。

但令我惊讶的是,当我在 redhat 框上执行 'ssh-add -D' 时,密钥不仅在本地消失,而且还在我的 macbook 上被删除。这是如何运作的?

似乎有一些管道一直打开。

Niz*_*med 5

ssh-add 通过 Unix 域套接字连接到正在运行的代理。SSH_AUTH_SOCK 环境变量保存套接字的路径。ssh-add 检查变量并连接到可通过套接字访问的代理,而不是本地运行的代理。

当您通过 -o ForwardAgent=yes ssh 进入一台机器时,上面的变量被设置为指向一个套接字,该套接字连接到在原始主机中运行的代理。

如果您希望 ssh-add 连接到本地运行的代理,请将上述变量指向本地代理正在侦听的套接字的路径。您可以通过获取本地 agnets 套接字sudo lsof -p $(pgrep ssh-agent)并在 /tmp 中查找类型为 socket 的文件。