当我运行ssh-add -l
命令时,我没有得到任何文件名。如何找到文件名或以其他方式找到列出的密钥的来源ssh-add -l
?
这是我得到的输出:
~/.ssh ssh-add -l
2048 SHA256:iQ2q8EE0sDPYp5icCTeXCi2iBWiqJEITqfnXRH1SOVA [email protected] (RSA)
2048 SHA256:nLrT5FirOWu3sDUvwS8ZWZq1TDy/VFCl+fcHzsf2AkQ (RSA)
2048 SHA256:NdJXmNw7joMTSBwQG4OVY1kQLi8kagO1R1dKEvNzeYA (RSA)
256 SHA256:lF1NWsr8K2wqOsbr94AJmRIRiJ/U/gDeZ7oZNz+jBDo [email protected] (ED25519)
答案1
由于您看到的密钥ssh-add -l
可以来自代理或本地文件系统,因此实际上没有任何方法可以将公钥哈希映射回关联的公钥或私钥。
您可以使用ssh-add -L
它在文件系统中找到的格式来获取公钥。
如果您的所有密钥都在当前目录中,您可以运行类似这样的命令来报告代理中已包含哪些公钥的文件名。至少对我来说,这似乎很有效。
$ grep -f <( ssh-add -L) *.pub -l