我在 PHPStorm 中使用 subversion,当我尝试连接到 SVN 服务器时出现以下错误...
无法建立主机svn+ssh://svn.example.com:22的真实性。ssh-rsa 密钥指纹是
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
确定要继续连接吗?
问题是指纹与服务器的指纹不匹配。如果我从 ~/.ssh/known_hosts 文件中删除服务器,然后 ssh 到它会显示一个完全不同的指纹 - 这是该服务器的正确指纹。
我刚刚将 SVN 存储库移动到新服务器,并将 DNS 更改为指向新服务器,所以我期待 PHPStorm 抱怨指纹不匹配,但我很惊讶它没有显示新服务器的正确指纹. 指纹也不匹配旧服务器,或者 PHPStorm 曾经连接到的任何其他服务器。在我了解发生了什么之前,我很担心让它连接起来。
PHPStorm 正确连接到新服务器,所以我看不出它是如何获得错误的指纹的,而且我似乎不太可能在中间攻击中看到一个真正的人,因为每当我从命令行 ssh 时它看到正确的指纹。
我不确定 PHPStorm 在哪里缓存服务器指纹。我尝试过使缓存无效,看看这是否会使其忘记任何过时的指纹数据,但鉴于报告的指纹与旧服务器或新服务器不匹配,这似乎不太可能。
我得出的结论是这是 PHPStorm 中的一个错误,但任何其他想法都会非常受欢迎。
编辑:
PHPStorm 显示一个 20 字节的指纹。在服务器上运行它(debian)
ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key
显示一个 16 字节的指纹,因此它们不可能匹配。有没有办法从服务器的公钥中获取 20 字节的指纹?