我正在使用libcurl作为SFTP而且非常棒。我想检查主机是否要连接,如果它存在于hosts文件中。在Linux中,我可以轻松找到已知的主机文件,因为它几乎总是在~/.ssh/known_hosts
中。我想知道Windows是否保持相同的东西,或者没有关于此类文件驻留在Windows中的标准。
答案 0 :(得分:3)
~/.ssh/known_hosts
是OpenSSH使用的* nix路径。 ~
已解析为帐户的主目录,该目录在/etc/passwd
文件中指定。主页默认为/home/username
文件夹。
OpenSSH是Linux软件。它不能单独在Windows上运行。
虽然它可以在Windows上运行* nix仿真,但也有OpenSSH的Windows克隆。所以最后你的问题是你在Windows服务器上运行什么样的模拟或克隆,以及如何映射/重新实现对~/.ssh/known_hosts
的访问。
Win32-OpenSSH(Microsoft的OpenSSH Windows克隆版):它转到您的Windows帐户个人资料文件夹。即通常为C:\Users\username\.ssh
。
另请参阅我的Setting up SSH public key authentication on Win32-OpenSSH指南。
Cygwin emulator:在我的安装中,所有类似* nix的路径实际上都存储在C:\cygwin64
(32位C:\cygwin
)上。
因此/home/username/.ssh/known_hosts
位于C:\cygwin64\home\martin\.ssh\known_hosts
。
答案 1 :(得分:2)
虽然不确定libcurl。但是,对于PuTTY用户而言,如果PuTTY发出诸如WARNING: Server public key has changed
之类的警告,这可能会有所帮助
因此在PuTTY窗口中,known_hosts是SshHostKeys。
HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\SshHostKeys
位置的。到达应该使用的位置Registry Editor
。
regedit
HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\SshHostKeys
的位置-location WARNING: Server public key has changed
,请删除注册表值SshHostKeys
来检查REG QUERY HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\SshHostKeys
文件中的内容然后将清除缓存。该特定条目将再次成为新事物
答案 2 :(得分:1)
查看~\Users\~\AppData\Roaming\_ssh\known_hosts
。
另请参阅:http://comments.gmane.org/gmane.comp.web.curl.general/12593