公開鍵認証でvagrantの仮想マシン間でssh接続する
private_networkにしておくと仮想マシン間で通信が可能
Vagrantfileは以下の通り
Vagrant.configure("2") do |config| config.vm.box = "centos/7" config.vm.define :app1 do |app1| app1.vm.hostname = "app1" app1.vm.network "private_network", ip: "192.168.33.10" end config.vm.define :app2 do |app2| app2.vm.hostname = "app2" app2.vm.network "private_network", ip: "192.168.33.20" end end
app1からapp2へのssh接続の例
vagrantを立ち上げる
$ vagrant up
ssh-copy-idで鍵をapp1からapp2にコピーしようとするとPermission deniedとなる(centos7でPasswordAuthenticationがデフォルトでnoとなっているのが原因らしい)ので/etc/ssh/sshd_configを編集
$ vagrant ssh app2 [vagrant@app2 ~]$ sudo vi /etc/ssh/sshd_config
PasswordAuthenticationをyesにする
PasswordAuthentication yes
変更を反映させる
[vagrant@app2 ~]$ systemctl restart sshd
app1に接続して鍵を作成して、app2にコピー
$ vagrant ssh app1 [vagrant@app1 ~]$ ssh-keygen [vagrant@app1 ~]$ ssh-copy-id 192.168.33.20
[vagrant@app1 ~]$ ssh 192.168.33.20 [vagrant@app2 ~]$
参考