问题:我输入框中的第一个命令是su -
。
问题:如何让vagrant ssh
默认使用root用户?
版本:vagrant 1.6.5
这很有用:
sudo passwd root
对于那些因为需要首先在vagrant中设置root密码而被抓住的人
解:
将以下内容添加到Vagrantfile
:
config.ssh.username = 'root'
config.ssh.password = 'vagrant'
config.ssh.insert_key = 'true'
当你今后vagrant ssh
,你将登录root
并应该期望以下:
==> mybox: Waiting for machine to boot. This may take a few minutes...
mybox: SSH address: 127.0.0.1:2222
mybox: SSH username: root
mybox: SSH auth method: password
mybox: Warning: Connection timeout. Retrying...
mybox: Warning: Remote connection disconnect. Retrying...
==> mybox: Inserting Vagrant public key within guest...
==> mybox: Key inserted! Disconnecting and reconnecting using new SSH key...
==> mybox: Machine booted and ready!
2015年6月23日更新:这适用于1.7.2版本。自1.7.0以来,键控安全性有所提高;此技术将覆盖回使用已知私钥的先前方法。如果在发布之前未执行适当的安全措施,则此解决方案不能用于可公开访问的盒子。
参考:
如果您使用的是ubuntu / trusty64,则此方法有效:
vagrant ssh
进入ubuntu框后:
sudo su
现在你是root用户。您可以更新root密码,如下所示:
sudo -i
passwd
现在编辑文件/etc/ssh/sshd_config
中的以下行
PermitRootLogin yes
此外,创建自己的备用用户名也很方便:
adduser johndoe
等到它要求输入密码。
如果Vagrantfile
如下:
config.ssh.username = 'root'
config.ssh.password = 'vagrant'
config.ssh.insert_key = 'true'
但是,vagrant仍然会问你root密码,很可能你使用的基本框没有配置为允许root登录。
例如,官方的ubuntu 14.04框没有在qazxsw poi中设置qazxsw poi。
所以如果你想一个盒子可以作为root默认登录(只有Vagrantfile,没有更多的工作),你必须:
PermitRootLogin yes
设置vm(除了root之外的任何名称)/etc/ssh/sshd_config
,设置vagrant
其他: ....
(我只使用ubuntu,随意添加其他平台的解决方法)/etc/ssh/sshd_config
这创建了一个文件PermitRootLogin yes
vagrant package --base your-vm-name
然后,您需要使用此基本框来构建允许以root身份自动登录的vm。package.box
摧毁原始的vmvagrant box add ubuntu-root file:///somepath/package.box
,将框名称更改为vagrant destroy
,将用户名更改为Vagrantfile
,然后ubuntu-root
创建一个新名称。我花了一些时间才弄清楚,在我看来这太复杂了。希望流浪者会改善这一点。
不要忘了root允许root登录!!!
将配置代码放在root
文件中。
vagrant up
我知道这是一个老问题,但看看原来的问题,看起来用户只是想以root身份运行命令,这就是我在搜索答案时遇到的问题,并且偶然发现了问题。
所以我觉得这个值得一提:
/etc/ssh/sshd_config
PermitRootLogin yes
是在sudo命令中回显的密码,因为众所周知,vagrant帐户具有sudo权限,当你sudo时,你需要指定用户帐户的密码,而不是root ...当然,默认情况下,流浪者用户的密码是vagrant ssh servername -c "echo vagrant | sudo -S shutdown 0"
!
默认情况下,您需要root权限才能关闭,所以我想关闭是一个很好的测试。
显然,如果只有一个用于该流浪者环境,则不需要指定服务器名称。另外,我们正在讨论到主机的本地流浪虚拟机,所以我看不到任何安全问题。
希望这可以帮助。
将此添加到vagrant
对我有用。这些行相当于您每次登录时输入vagrant
。请注意,这需要重新配置VM。
Vagrantfile
尝试以root身份登录时,我遇到了一些配置问题,即使使用sudo su -
也是如此。我这样做只有config.vm.provision "shell", inline: <<-SHELL
echo "sudo su -" >> .bashrc
SHELL
命令受到影响:
PermitRootLogin yes
vagrant ssh
请将此添加到vagrant文件:
# Login as root when doing vagrant ssh
if ARGV[0]=='ssh'
config.ssh.username = 'root'
end