前記のvagrantが反応しない
で、vagrant ssh
のコマンドが使えなくなると困るので、今更ながら、通常のSSHで接続する設定を行った。
vagrant ssh
するよりも通常のsshで接続した方がレスポンス良く早いようです
自分のVagranfileでは、すでにブリッジ接続となっていて、デフォルトのポートが2222となってます
config.vm.network "public_network", ip: "192.168.1.10", bridge: "en0: Ethernet"
もし、network部分を設定していなければ、下記のように記述しておきましょう
config.vm.network "forwarded_port", guest: 22, host: 2210
ssh-config
Vagrantfileが存在するディレクトリで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/user/vagrant/.vagrant/machines/default/virtualbox/private_key
IdentitiesOnly yes
LogLevel FATAL
vagrantを実行しているホストのローカルでは、このconfigのdefault部分をホスト名に変更し~/.ssh/configに追記すれば良いです
このコマンドでは一発で追記
$ vagrant ssh-config --host [myHost] >> ~/.ssh/config
同じネットワーク上の他のPCからは、private_keyを転送し、IdetifyFileにprivate_keyの場所を指定し、HostNameのIPを変更してあげれば、接続可能です
今回の私の例でのconfigはこのようになります
Host vagrant
HostName 192.168.1.10
User vagrant
# Port 2222
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
PasswordAuthentication no
IdentityFile /home/user/.ssh/vagrant_key ## private_keyをvagrant_keyへ変更
IdentitiesOnly yes
LogLevel FATAL
ちなみに、Port:2222
はホストからvagrantへのPortFowardなので、ブリッジ接続しているvagrantは直接IPを持っているので、ホスト以外から接続する場合は、Portはコメントアウトしてデフォルトの22番ポートで接続します
VagrantのBoxではブリッジ接続してあるので、ホストと別IPを持っているため、configへ記入せずにダイレクトでも接続可能です
$ ssh -i /Users/user/vagrant/.vagrant/machines/default/virtualbox/private_key [email protected]