使用过vagrant的人都知道,vagrant up后就可以使用vagrant ssh免密码登陆box了。
其实vagrant ssh也可以分解成两步
# save the config to a file
vagrant ssh-config > vagrant-ssh
# run ssh with the file.
ssh -F vagrant-ssh default
通过查看 vagrant ssh-config的内容可以知道,它是使用private key来登陆的。
如果我测试中需要ssh登陆某一个用户并有密码校验,该如何配置呢?
# Firstly, modify 'PasswordAuthentication yes' in /etc/ssh/sshd_config
# Secondly, run following command:
$ sudo systemctl restart sshd
# Thirdly, create a user
$ sudo useradd -m -d /home/vagranttest -s /bin/bash vagranttest
$ echo -e "vagranttest\nvagranttest\n" | sudo passwd vagranttest
$ sudo chmod 777 -R /home/vagranttest/
# give vagranttest user to sudo priviledge
$ sudo usermod -aG wheel vagranttest
现在,我们可以在vagrant box内部使用ssh vagranttest@localhost来创建ssh session进行测试。
如果我们希望在宿主机上远程登陆,则需要修改Vagrantfile,配置一个私有ip用于登陆
# Create a private network, which allows host-only access to the machine
# using a specific IP.
config.vm.network "private_network", ip: "192.168.33.10"
这样,我们就可以使用ssh vagranttest@192.168.33.10来访问vagrant box。