web-dev-qa-db-ja.com

Windowsの既知のホストへの明確なパスはありますか?

私はSFTPとしてlibcurlを使用しています。ホストファイルに存在する場合、接続しようとしているホストを確認したい。 Linuxでは、ほとんどの場合~/.ssh/known_hostsにあるため、既知のホストファイルを簡単に見つけることができます。 Windowsが同じものを維持しているか、そのようなファイルがWindowsのどこに常駐するかに関する標準がないかどうかを知りたいと思いました。

7
Stefano Mtangoo

~/.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に変更します。

    Win32-OpenSSHでのSSH公開鍵認証の設定 の私のガイドも参照してください。

  • Cygwinエミュレーター :私のインストールでは、* nixのようなパスはすべて実際にはC:\cygwin64(32ビットではC:\cygwin)に格納されています。

    したがって、/home/username/.ssh/known_hostsC:\cygwin64\home\username\.ssh\known_hostsにあります。


Windows SSHクライアントは通常、known_hostsを使用しないことに注意してください。ホストキーキャッシュ/ストレージが異なります。

たとえば、広く使用されているWindows SSHクライアントであるPuTTYは、WindowsレジストリへのホストキーをHKCU\Software\SimonTatham\PuTTY\SshHostKeysキーに格納します。詳細については、 answer by @aneesh を参照してください。

6
Martin Prikryl

覗く ~\Users\~\AppData\Roaming\_ssh\known_hosts

参照: http://comments.gmane.org/gmane.comp.web.curl.general/1259

3
i486

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
aneesh