可以使用列出 ssh 代理提供的本地密钥ssh-add -L
。当通过 ssh 连接到远程计算机时,是否有办法从本地计算机列出通过 ssh 代理提供的密钥?
答案1
您确实转发了本地代理,对吗?如果是这样,那么命令是相同的:ssh-add -L
。ssh-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
。