可能我错过了一些明显的东西,但厌倦了ssh代理的5个关键限制后,我开始寻找更好的ssh密钥pipe理方法。
如果我使用ssh-keygen -t rsa创build一个新的ssh密钥对,那么我可以使用ssh-keygen -lf获取私钥和公钥的指纹,并且它们都报告相同的指纹。
然后,我天真的期望是做一些像ssh-keyscan这样的东西获得远程公共密钥指纹在该主机上,并匹配指纹到我的私人密钥之一,并启动使用该私钥ssh连接。
很明显,我使用ssh-keyscan得到的指纹甚至不像本地按键的指纹。
解决这个困境的解决scheme是什么?
ssh-keyscan命令用于扫描主机密钥( /etc/ssh/ssh_host_*.pub ),而不是用于用户authentication/授权的密钥。
您需要连接到远程主机并检查各种authorized_keys文件。 复杂的一点是,authorized_keys文件中可能有许多键,所以你需要做一些操作来提取单个键并打印它们。
在serverfault上有另一个问题/答案,有一些好的方法 。
我想我通过简单地定义一个关键字对来使用我的~/.ssh/config主机来避免你的困境
Host www HostName www.example.com IdentityFile ~/.ssh/key1 Host dev HostName dev.example.org IdentityFile ~/.ssh/key2