Windows 中是否有已知主机的确定路径?

Is there a definitive path for known hosts in Windows?

我正在使用 libcurl 作为 SFTP,它很棒。我想检查即将连接的主机是否存在于主机文件中。在 Linux 中,我可以轻松找到已知的主机文件,因为它几乎总是在 ~/.ssh/known_hosts 中。我想知道 Windows 是否维护相同的东西,或者关于此类文件在 Windows 中的位置没有标准。

~\Users\~\AppData\Roaming\_ssh\known_hosts.

中查找

另请参阅:http://comments.gmane.org/gmane.comp.web.curl.general/12593

~/.ssh/known_hosts 是 OpenSSH 使用的 *nix 路径。 ~ 解析为帐户的主目录,该目录在 /etc/passwd 文件中指定。主页默认为 Linux 上的 /home/username 文件夹。


OpenSSH 是 Linux 软件。它本身不会 运行 Windows。

尽管它可以在 Windows 上的 *nix 仿真上 运行,并且还有 OpenSSH 的 Windows 克隆。所以最后,你的问题是关于你在 Windows 服务器上 运行 是什么仿真或克隆,以及 maps/re-implements 如何访问 ~/.ssh/known_hosts.

  • Win32-OpenSSH(Windows Microsoft 的 OpenSSH 克隆):它会转到您的 Windows 帐户配置文件文件夹。 IE。通常为 C:\Users\username\.ssh.

    另请参阅我的 Setting up SSH public key authentication on Win32-OpenSSH 指南。

  • Cygwin emulator:在我的安装中,所有类似 *nix 的路径实际上都存储在 C:\cygwin64C:\cygwin on 32-bit)。

    所以 /home/username/.ssh/known_hostsC:\cygwin64\home\username\.ssh\known_hosts.


请注意 Windows SSH 客户端通常不使用 known_hosts。他们有不同的主机密钥 cache/storage.

例如,广泛使用的 Windows SSH 客户端 PuTTY 将知道的主机密钥存储到 Windows 注册表到 HKCU\Software\SimonTatham\PuTTY\SshHostKeys 密钥。有关详细信息,请参阅 .

虽然不确定 libcurl。但是,对于 PuTTY 用户,如果 PuTTY 抛出诸如 WARNING: Server public key has changed 之类的警告,这可能会有所帮助 所以在 window known_hosts 中,PuTTY 是 SshHostKeys。

存储在 HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\SshHostKeys 位置。到达那个位置 Registry Editor 应该被使用。

  • 开始寻找regedit
  • 然后你会在电脑
  • 下的左窗格中看到所有目录
  • 就像这张图片所说的那样去 HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\SshHostKeys 位置 - location
  • 然后您可以随意修改 Known host options - 如果您看到警告 WARNING: Server public key has changed
  • ,请删除注册表值
  • 如果需要,您可以使用此命令 REG QUERY HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\SshHostKeys
  • 检查 SshHostKeys 文件中的内容

然后缓存将被清除。该特定条目将再次成为新事物