【发布时间】:2012-12-23 10:05:24
【问题描述】:
我在 PHPStorm 中使用 subversion,当我尝试连接到 SVN 服务器时出现以下错误...
host 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 字节的指纹?
【问题讨论】:
-
您可以继续使用
ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key命令。只需添加-E md5或-E sha256即可选择您想要的算法。
标签: svn ssh phpstorm fingerprint rsa-key-fingerprint