Vagrant - 如何在config.ssh.username =' root'?

时间:2015-05-11 20:14:29

标签: vagrant

我试图在我的流浪者环境中默认vm以root用户身份登录。我无法控制的代码必须以root身份运行,并且无法使用sudo运行(文件专门复制到/ root等)。我遇到的问题是,在运行配置代码之前,vagrant似乎尝试以root用户身份登录(将公钥复制到/root/.ssh/authorized_keys文件中)。

我在vagrantfile中有这一行:

config.ssh.username = 'root'

当我运行vagrant up(干净环境,所以vm刚刚下载)我最终得到了这个:

centos64: SSH username: root
centos64: SSH auth method: private key
centos64: Warning: Connection timeout. Retrying...
centos64: Warning: Authentication failure. Retrying...
centos64: Warning: Authentication failure. Retrying...

如果我ctrl-c出了这个(或者让它最终超时),很明显提供代码:

config.vm.provision "shell" do |s|
    s.path = 'provision.sh'
  end

这样做:

mkdir /root/.ssh
touch /root/.ssh/authorized_keys
cat /home/vagrant/.ssh/authorized_keys >> /root/.ssh/authorized_keys

尚未参加。

但是,如果我注释掉这一行:

#config.ssh.username = 'root'

然后,运行vagrant(再次,从头开始下载vm的干净安装),一切都开始了。然后我取消注释该行,并再次运行vagrant,我可以以root身份运行,我可以看到提供代码确实已经运行(从第一个流出来)并且我的密钥在authorized_keys文件中。

所以,我的问题是:如何在配置设置之前运行配置代码,告诉它使用root登录?

0 个答案:

没有答案