Vagrantにログインする場合$ vagrant ssh
を利用するのですが、普通のSSHを利用してサーバーのプロビジョンを他のツールに任せたい場合があります。
Vagrantの構築に関しては Vagrantで開発環境を手軽に構築し壊す を参照してください。
普通のsshコマンドを利用してログインするための設定をしたのでメモ。
前提条件
- VagrantfileでIPアドレスが 192.168.33.10に設定しているとします。
- 実行環境はMac OS X 10.10.2
- vagrant boxはCentOS6.5
Vagrantfileを一部抜粋
Vagrant.configure(2) do |config|
config.vm.box = "centos65"
config.vm.network "private_network", ip: "192.168.33.10"
接続情報を表示する
秘密鍵の場所、ポート、ユーザなどSSH接続に必要な情報は$ vagrant ssh-config
コマンドを発行すると表示されます。
$ vagrant ssh-config
Host default
HostName 127.0.0.1
User vagrant
Port 2222
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
PasswordAuthentication no
IdentityFile /Users/xxxx/.vagrant/machines/default/virtualbox/private_key
IdentitiesOnly yes
LogLevel FATAL
このポート番号やら秘密鍵を指定して接続も可能ですが、それも面倒なので~/.ssh/configに記述してしまいます。
$ vagrant ssh-config --host 192.168.33.10 >> ~/.ssh/config
$ vagrant ssh-config
で表示された情報の中の、Host defaultの部分を設定したIPアドレス192.168.33.10
に書き換えます。
→ $ vagrant ssh-config --host 192.168.33.10
とすればよかった。。
$ vim ~/.ssh/config
Host 192.168.33.10
HostName 127.0.0.1
User vagrant
Port 2222
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
PasswordAuthentication no
IdentityFile /Users/xxxx/.vagrant/machines/default/virtualbox/private_key
IdentitiesOnly yes
LogLevel FATAL
接続をためしてみます。
$ ssh 192.168.33.10
Last login: Tue Feb 17 04:08:54 2015 from 10.0.2.2
[vagrant@vagrant-centos65 ~]$
というわけで、接続がうまくいきました。^^