Vagrant の仮想 OS へ Tera Term や WinSCP で接続

Vagrant で実行中の仮想 OS (ゲスト OS)へホスト OS から接続するには、通常 vagrant ssh を使用しますが、Windows 環境で Tera Term や WinSCP を使って接続してみました。 *1

Tera Term を使った接続

Vagrant の仮想 OS へ ssh するには、Vagrant のインストールディレクトリ直下にある insecure_private_key ファイルを使ってユーザー vagrant でポート 2222 へ ssh 接続します。

Tera Term なら以下のようなマクロを使って接続すれば簡単です。(Vagrant を C ドライブにインストールしている場合)

vagrant_login.ttl (vagrant ログイン用 Tera Term マクロ)
host = '127.0.0.1'
user = 'vagrant'
keyfile = 'c:/vagrant/insecure_private_key'

msg = host
strconcat msg ':2222 /ssh /auth=publickey /user='
strconcat msg user
strconcat msg ' /keyfile="'
strconcat msg keyfile
strconcat msg '"'

connect msg
接続例
Welcome to Ubuntu 12.04 LTS (GNU/Linux 3.2.0-23-generic x86_64)

 * Documentation:  https://help.ubuntu.com/
Welcome to your Vagrant-built virtual machine.
・・・
vagrant@precise64:~$

WinSCP を使った接続

insecure_private_key *2WinSCP のサポートしている PuTTY 形式では無いので、PuTTYgen (PuTTY Key Generator) *3 を使って PuTTY Private Key 形式 (.ppk) に変換します。

PuTTY Private Key への変換
  1. puttygen.exe 実行
  2. 「Load」ボタンを押下し insecure_private_key をロード
  3. 「Save private key」ボタンを押下し任意のファイルに保存
WinSCP ログイン

WinSCP ログイン画面で下記のような内容を入力してログインします。

ログイン入力内容
ファイルプロトコル SCP
ホスト名 localhost
ポート番号 2222
ユーザ名 vagrant
秘密鍵 PuTTYgen で保存したファイル

なお、ホスト名は localhost ではなく 127.0.0.1 でも可です。

*1:Windows 環境で vagrant ssh するには msysgit 等に含まれる ssh.exe を利用します

*2:OpenSSH SSH-2 private key 形式

*3:通常、WinSCP のインストール時にインストールされています