質問: OS:windows 10 調べたら`C:\Program Files (x86)\teraterm`の中にssh_known_hostsというものがあるはずなんですが、見つからないです。 ただteratermを普通に使用できています。新しいサーバーに接続する際はknownhostsに書き込むよみたいな表示が出てきます。接続したことあるサーバーに接続すると表示がでてこないので、普通の動作をしています。 TERATERM.INIには`KnownHostsFiles=ssh_known_hosts`という記述がありました。 どこにあるのでしょうか? 上記にあるディレクトリにssh_known_hostsというものを作ってもいいものなのでしょうか?
回答: たぶん、VirtualStoreに入っていると思います。エクスプローラーで、 `%LOCALAPPDATA%\VirtualStore\Program Files (x86)\teraterm` を開いてみて下さい。その他のteratermの設定ファイルと一緒にあると思います。 参考: Windows 10 に teraterm を入れる - ある日録 【仕組み的な解説】(蛇足です、興味がある方のみお読みください) これは、Windows Vista以降に搭載されたVirtualStoreという機能です。 通常、"C:\Programe Files (x86)"や"C:\Programe Files"にインストールされたアプリケーションの各フォルダは、管理者またはインストールしたユーザしか書き込みできません。そのため、管理者でインストールしたアプリケーションを一般ユーザーで動作させたい場合、アプリケーション側で各ユーザーのプロファイル領域の配下(特に%APPDATA%や%LOCALAPPDATA%など)に設定を保存する必要がありました。しかし、Windows 9x時代に作られた古いアプリケーションはそのような動作に対応しておらず、インストールされたフォルダに直接設定を保存しようとします。このような場合、XP以前ではフォルダに一般ユーザの書き込み権限を与えるという苦肉の策を取るしかありませんでした。 そこで登場したのが、VirtualStore機能です。これは、"C:\Programe Files (x86)"や"C:\Programe Files"にあるアプリケーションのフォルダ配下にファイルを書き込んだ場合でも、実態を%LOCALAPPDATA%\VirtualStore配下に置いて、書き込み権限が無い問題を解決しつつ、アプリケーションからは"C:\Programe Files (x86)"や"C:\Programe Files"の配下に書かれたかのように見せる(つまり、アプリケーションを騙す)仕組みです。こうすることで、アクセス権を変える事も無く、また、ユーザー毎に異なる設定を保持できるという利点ができます。こうして、作りが古いアプリケーションでも問題なく動作できるようになりました。 最新のアプリケーションはユーザー毎のプロファイル配下に設定ファイルを作成するため、上のようなことはほとんどありません。ただ、Windows 9x時代からあるような古いアプリケーションでは今でもその機能を使用している場合がありますので、注意が必要になります。