可能我遗漏了一些明显的东西,但是在厌倦了 ssh-agent 的 5 个关键限制之后,我开始寻找更好的 ssh 密钥管理方法。
如果我使用 ssh-keygen -t rsa 创建一个新的 ssh 密钥对,然后我可以使用 ssh-keygen -lf 来获取私钥和公钥的指纹,并且它们都报告相同的指纹。
然后我天真的期望是做类似 ssh-keyscan 的事情来获取该主机上的远程公钥指纹并将该指纹与我的一个私钥匹配并使用该私钥启动 ssh 连接。
显然,我使用 ssh-keyscan 获得的指纹甚至不像本地密钥的指纹。
有什么办法可以解决这个困境吗?
该
ssh-keyscan
命令用于扫描主机密钥 (/etc/ssh/ssh_host_*.pub
),而不是用于对用户进行身份验证/授权的密钥。您需要连接到远程主机并检查各种 authorized_keys 文件。复杂的一点是,authorized_keys 文件中可以包含许多密钥,因此您需要进行一些操作来提取各个密钥并打印它们。
关于 serverfault的另一个问题/答案有一些好的方法。
我想我可以通过简单地先验地定义哪个密钥对用于我的主机中的主机来避免您的困境
~/.ssh/config