20867


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

  * NTEmacs 24.4
  * Vagrant + VirtualBox

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

* * *

追記@2016/09/23

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


CC BY-SA 3.0
2016-01-10T07:00:49.493
20798
2016-09-23T02:47:18.077
2016-09-23T02:47:18.077
754
754
question
windows emacs vagrant
NTEmacs で vagrant の中に tramp するには？


（私は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]


CC BY-SA 3.0
2016-01-12T16:14:44.520
20867
2016-01-13T18:31:20.963
2016-01-13T18:31:20.963
2391
2391
20798
answer


PuTTY でひとまずログインできたので、その方法を記述します。 kosh さんの方法でも可能ですが、 insecure_private_key の管理は
vagrant が行ってくれるものなので、 authorized_keys を自分で登録するのは、ちょっと違うかもと思い、試行錯誤した結果、次になりました。

  1. puttygen.exe を使ってvagrantの秘密鍵ファイルからPuTTY用秘密鍵(*.PPK)と公開鍵を生成する。利用する秘密鍵にどれを使ったらいいかは、 [insecure_private_key の置き換えについて](https://ja.stackoverflow.com/q/10987/754) 参照。

  2. pageant.exe を起動して.PPKファイルを読みこませる

  3. Emacsを起動してTramp経由でログインする

(find-file "/plink:vagrant@localhost#2222:~")

ただ、記述して思いましたが、あまり手間は変わらなかったです。


CC BY-SA 3.0
2016-01-25T13:25:54.957
21302
2016-01-25T13:25:54.957
2017-04-13T12:52:39.113
-1
754
20798
answer