远程计算机上的 ssh 代理提供的 ssh 密钥列表

远程计算机上的 ssh 代理提供的 ssh 密钥列表

可以使用列出 ssh 代理提供的本地密钥ssh-add -L。当通过 ssh 连接到远程计算机时,是否有办法从本地计算机列出通过 ssh 代理提供的密钥?

答案1

您确实转发了本地代理,对吗?如果是这样,那么命令是相同的:ssh-add -Lssh-add连接到由指定的套接字$SSH_AUTH_SOCK,如果您使用了,ssh -A那么远程套接字将通向您的本地代理,因此远程ssh-add(或使用套接字的任何工具)将与本地代理通信。

您甚至可以使用ssh-add远程密钥(从您的角度来看是远程的;从在服务器上运行的角度来看是本地的ssh-add),并且您的本地代理即使在断开连接后也可以使用它。

(可以使用更复杂的技巧。例如我的这个答案描述“借用”密钥,但方向相反:将本地密钥添加到在服务器上运行的代理中。)

注意:ssh-add -L将显示添加的密钥的路径名,但不表明每个密钥来自哪里(哪个主机)。您可以在ssh-add /foo/bar本地添加一个密钥,也可以ssh-add /foo/bar在服务器上添加另一个密钥(当代理被转发时!),并且ssh-add -L(本地或服务器上)将显示两个不同的密钥,描述为/foo/bar

相关内容