Windows で Vagrant を試していて、ちょっとつまづいたところがあったのでメモ。
コマンドプロンプトではなく mintty を使っている場合、「vagrant ssh」と打っても「Pseudo-terminal will not be allocated because stdin is not a terminal.」とエラーが出てしまい ssh 接続ができません。
mintty は Cygwin のターミナルエミュレータで、使いやすいのでコマンドプロンプトではなくこちらを使いたいところ。※mintty については mintty を使えるようにする | dogmap.jp が詳しいです。
調べたところ「vagrant ssh」ではなく普通の ssh 接続(「ssh なんたら~」)で繋げばいけるらしい。vagrant の ssh 接続情報は ssh-config で調べることができるので、これを使って ~/.ssh/config に設定。
$ vagrant ssh-config >> ~/.ssh/config
これで ~/.ssh/config に次のような記述が追加されます。
Host default HostName 127.0.0.1 User vagrant Port 2222 UserKnownHostsFile /dev/null StrictHostKeyChecking no PasswordAuthentication no IdentityFile ユーザーディレクトリ/.vagrant.d/insecure_private_key IdentitiesOnly yes LogLevel FATAL
あとは、mintty で
$ ssh default
とすれば、mintty から ssh 接続できます。~/.ssh/config の一行目「Host default」を「Host vagrant」にすれば
$ ssh vagrant
で接続できます。覚えやすいかなと私はこっちにしておきました。
もし最初から Host を指定したいならば、
vagrant ssh-config --host HOSTNAME >> ~/.ssh/config
としておけば OK。
参考: