默认情况下,以root身份登录vagrant

问题描述 投票:82回答:9

问题:我输入框中的第一个命令是su -

问题:如何让vagrant ssh默认使用root用户?

版本:vagrant 1.6.5

login ssh vagrant root
9个回答
120
投票

这很有用:

sudo passwd root

对于那些因为需要首先在vagrant中设置root密码而被抓住的人


106
投票

解: 将以下内容添加到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以来,键控安全性有所提高;此技术将覆盖回使用已知私钥的先前方法。如果在发布之前未执行适当的安全措施,则此解决方案不能用于可公开访问的盒子。

参考:


32
投票

如果您使用的是ubuntu / trusty64,则此方法有效:

vagrant ssh

进入ubuntu框后:

sudo su

现在你是root用户。您可以更新root密码,如下所示:

sudo -i
passwd

现在编辑文件/etc/ssh/sshd_config中的以下行

PermitRootLogin yes

此外,创建自己的备用用户名也很方便:

adduser johndoe

等到它要求输入密码。


11
投票

如果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,没有更多的工作),你必须:

  1. 用户名PermitRootLogin yes设置vm(除了root之外的任何名称)
  2. 登录并编辑sshd配置文件。 ubuntu:编辑/etc/ssh/sshd_config,设置vagrant 其他: .... (我只使用ubuntu,随意添加其他平台的解决方法)
  3. 构建一个新的基本框: /etc/ssh/sshd_config 这创建了一个文件PermitRootLogin yes
  4. 将该基本框添加到vagrant: vagrant package --base your-vm-name 然后,您需要使用此基本框来构建允许以root身份自动登录的vm。
  5. 通过package.box摧毁原始的vm
  6. 编辑原始vagrant box add ubuntu-root file:///somepath/package.box ,将框名称更改为vagrant destroy,将用户名更改为Vagrantfile,然后ubuntu-root创建一个新名称。

我花了一些时间才弄清楚,在我看来这太复杂了。希望流浪者会改善这一点。


10
投票

不要忘了root允许root登录!!!

将配置代码放在root文件中。

vagrant up

1
投票

我知道这是一个老问题,但看看原来的问题,看起来用户只是想以root身份运行命令,这就是我在搜索答案时遇到的问题,并且偶然发现了问题。

所以我觉得这个值得一提:

/etc/ssh/sshd_config

PermitRootLogin yes 是在sudo命令中回显的密码,因为众所周知,vagrant帐户具有sudo权限,当你sudo时,你需要指定用户帐户的密码,而不是root ...当然,默认情况下,流浪者用户的密码是vagrant ssh servername -c "echo vagrant | sudo -S shutdown 0"

默认情况下,您需要root权限才能关闭,所以我想关闭是一个很好的测试。

显然,如果只有一个用于该流浪者环境,则不需要指定服务器名称。另外,我们正在讨论到主机的本地流浪虚拟机,所以我看不到任何安全问题。

希望这可以帮助。


0
投票

将此添加到vagrant对我有用。这些行相当于您每次登录时输入vagrant。请注意,这需要重新配置VM。

Vagrantfile

0
投票

尝试以root身份登录时,我遇到了一些配置问题,即使使用sudo su -也是如此。我这样做只有config.vm.provision "shell", inline: <<-SHELL echo "sudo su -" >> .bashrc SHELL 命令受到影响:

PermitRootLogin yes

-7
投票
vagrant ssh

请将此添加到vagrant文​​件:

# Login as root when doing vagrant ssh
if ARGV[0]=='ssh'
  config.ssh.username = 'root'
end
© www.soinside.com 2019 - 2024. All rights reserved.