質問: Windows 上で、以下のプログラムがインストールされています。 * NTEmacs 24.4 * Vagrant + VirtualBox この環境で、 emacs 上から tramp で vagrant box の中に入りたいのですが、これはどうやったら実現できますでしょうか。 --- 追記@2016/09/23 今回の目的は Windows 上で linux の開発を行うことが目的でしたが、これをやるんではなく、仮想マシンに直接 PuTTY で接続してその中で emacs を実行するなどする方がいろいろやりやすことがわかりました。
回答: (私はVagrantを使ったことがないため、勘違いしている箇所があるかもしれません) NTEmacs+Trampに必要なのは次の2点です 1. SSHクライアントをインストールする * PuTTY * OpenSSH for Windows 有名なWindows用SSHクライアントといえばこれでしょうか。インストールしてEmacsから呼び出せるようにPATHを通しておいてください。 2. SSHログイン用のサーバ情報を `~/.ssh/config` に書き込む vagrant ssh-config コマンドを使えばSSHログインに必要な情報を出力することができるそうです。コマンドプロンプトを開いて次のコマンドを実行してください。(`HOSTNAME` はログインするサーバ名です) ``` vagrant ssh-config --host HOSTNAME >> %USERPROFILE%/.ssh/config ``` あとはEmacs から `C-x C-f` でファイルを開くときに次の書式でログインすることができます。 ``` /ssh:HOSTNAME:/path/to/file ``` ~~PuTTYをインストールした場合は書式内の`ssh`を`plink`に置き換えてください。~~ **追記 (2016/01/14)** PuTTYのドキュメントによると設定の保管はレジストリのみで~/.ssh/configファイルは今のところサポートしていないそうです。 代替案としてvagrantの秘密鍵ファイル`%USERPROFILE%/.vagrant.d/insecure_private_key`を利用して公開鍵認証方式でログインする方法はどうでしょうか。 1. puttygen.exe を使ってvagrantの秘密鍵ファイルからPuTTY用秘密鍵(*.PPK)と公開鍵を生成する 2. pageant.exe を起動して.PPKファイルを読みこませる 3. 公開鍵をサーバの ~/.ssh/authorized_keys に登録する 4. Emacsを起動してTramp経由でログインする ログイン時の書式は少し冗長になります。ユーザ名やポート番号はそれぞれ置き換えてください。 ``` /plink:USERNAME@HOSTNAME#PORT:/path/to/file ```