NTEmacs で vagrant の中に tramp するには？


Windows 上で、以下のプログラムがインストールされています。

  * NTEmacs 24.4
  * Vagrant + VirtualBox

この環境で、 emacs 上から tramp で vagrant box の中に入りたいのですが、これはどうやったら実現できますでしょうか。

* * *

追記@2016/09/23

今回の目的は Windows 上で linux の開発を行うことが目的でしたが、これをやるんではなく、仮想マシンに直接 PuTTY で接続してその中で
emacs を実行するなどする方がいろいろやりやすことがわかりました。




（私はVagrantを使ったことがないため、勘違いしている箇所があるかもしれません）

NTEmacs+Trampに必要なのは次の2点です

  1. SSHクライアントをインストールする

    * [PuTTY](http://www.chiark.greenend.org.uk/~sgtatham/putty/)
    * [OpenSSH for Windows](https://github.com/PowerShell/Win32-OpenSSH/releases)

有名なWindows用SSHクライアントといえばこれでしょうか。インストールしてEmacsから呼び出せるようにPATHを通しておいてください。

  2. SSHログイン用のサーバ情報を `~/.ssh/config` に書き込む

[vagrant ssh-config](https://docs.vagrantup.com/v2/cli/ssh_config.html)
コマンドを使えばSSHログインに必要な情報を出力することができるそうです。コマンドプロンプトを開いて次のコマンドを実行してください。(`HOSTNAME`
はログインするサーバ名です)

[code]

    vagrant ssh-config --host HOSTNAME >> %USERPROFILE%/.ssh/config
    
[/code]

あとはEmacs から `C-x C-f` でファイルを開くときに次の書式でログインすることができます。

[code]

    /ssh:HOSTNAME:/path/to/file
    
[/code]

~~PuTTYをインストールした場合は書式内の`ssh`を`plink`に置き換えてください。~~

* * *

**追記 (2016/01/14)**

[PuTTYのドキュメント](http://the.earth.li/~sgtatham/putty/0.66/htmldoc/Chapter4.html#config-
file)によると設定の保管はレジストリのみで~/.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経由でログインする

ログイン時の書式は少し冗長になります。ユーザ名やポート番号はそれぞれ置き換えてください。

[code]

    /plink:USERNAME@HOSTNAME#PORT:/path/to/file
    
[/code]




（私はVagrantを使ったことがないため、勘違いしている箇所があるかもしれません）

NTEmacs+Trampに必要なのは次の2点です

  1. SSHクライアントをインストールする

    * [PuTTY](http://www.chiark.greenend.org.uk/~sgtatham/putty/)
    * [OpenSSH for Windows](https://github.com/PowerShell/Win32-OpenSSH/releases)

有名なWindows用SSHクライアントといえばこれでしょうか。インストールしてEmacsから呼び出せるようにPATHを通しておいてください。

  2. SSHログイン用のサーバ情報を `~/.ssh/config` に書き込む

[vagrant ssh-config](https://docs.vagrantup.com/v2/cli/ssh_config.html)
コマンドを使えばSSHログインに必要な情報を出力することができるそうです。コマンドプロンプトを開いて次のコマンドを実行してください。(`HOSTNAME`
はログインするサーバ名です)

[code]

    vagrant ssh-config --host HOSTNAME >> %USERPROFILE%/.ssh/config
    
[/code]

あとはEmacs から `C-x C-f` でファイルを開くときに次の書式でログインすることができます。

[code]

    /ssh:HOSTNAME:/path/to/file
    
[/code]

~~PuTTYをインストールした場合は書式内の`ssh`を`plink`に置き換えてください。~~

* * *

**追記 (2016/01/14)**

[PuTTYのドキュメント](http://the.earth.li/~sgtatham/putty/0.66/htmldoc/Chapter4.html#config-
file)によると設定の保管はレジストリのみで~/.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経由でログインする

ログイン時の書式は少し冗長になります。ユーザ名やポート番号はそれぞれ置き換えてください。

[code]

    /plink:USERNAME@HOSTNAME#PORT:/path/to/file
    
[/code]

