通常のSSHコマンドでvagrantへ接続

vagrant ssh-config command is used to output a valid SSH configuration

* 本ページはプロモーションが含まれています

前記の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 vagrant@192.168.1.10

See also