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

Mik*_*e D 85 ssh login root vagrant

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

问题:vagrant ssh默认情况下如何使用root用户?

版本:vagrant 1.6.5

Ed *_*ams 123

这很有用:

sudo passwd root
Run Code Online (Sandbox Code Playgroud)

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

  • 这里的教训是,如果您创建一个基本框,请遵循 Hashicorp 建议的约定并将您的根密码设置为“vagrant”。见 http://docs.vagrantup.com/v2/boxes/base.html (2认同)

Mik*_*e D 107

解决方案:
将以下内容添加到您的Vagrantfile:

config.ssh.username = 'root'
config.ssh.password = 'vagrant'
config.ssh.insert_key = 'true'
Run Code Online (Sandbox Code Playgroud)

当你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!
Run Code Online (Sandbox Code Playgroud)

2015年6月23日更新: 这适用于1.7.2版本.自1.7.0以来,键控安全性有所提高; 此技术将覆盖回使用已知私钥的先前方法.如果在发布之前未执行适当的安全措施,则此解决方案不能用于可公开访问的盒子.

参考:

  • 对于已经配置的机器,执行上述操作,然后执行`mkdir -m 700 /root/.ssh && cp~franrant/.ssh/authorized_keys/root/.ssh` (10认同)
  • 不适用于新的Vagrant安装,可能是因为当使用例如ubuntu/xenial时,一个HAS使用在那里烘焙的用户登录.(另见/sf/answers/2833488171/) (2认同)
  • 对于使用 `centos/7` 的其他人:这个框设置一个随机的 root 密码;一个人可以`vagrant ssh`然后`sudo su`到root,但是(据我所知)配置设置不适用于使用这个VM的新`vagrant up`。 (2认同)

Thy*_*yag 33

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

vagrant ssh
Run Code Online (Sandbox Code Playgroud)

进入ubuntu框后:

sudo su
Run Code Online (Sandbox Code Playgroud)

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

sudo -i
passwd
Run Code Online (Sandbox Code Playgroud)

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

PermitRootLogin yes
Run Code Online (Sandbox Code Playgroud)

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

adduser johndoe
Run Code Online (Sandbox Code Playgroud)

等到它要求输入密码.


Mit*_*ril 11

如果Vagrantfile如下:

config.ssh.username = 'root'
config.ssh.password = 'vagrant'
config.ssh.insert_key = 'true'
Run Code Online (Sandbox Code Playgroud)

但是,vagrant仍然会问你root密码,很可能你使用的基本框没有配置为允许root登录.


例如,官方ubuntu14.04盒不设置 PermitRootLogin yes/etc/ssh/sshd_config.

所以如果你想一个盒子可以作为root默认登录(只有Vagrantfile,没有更多的工作),你必须:

  1. 用户名设置vm vagrant(除了root之外的任何名称)

  2. 登录并编辑sshd配置文件.

    ubuntu:编辑/etc/ssh/sshd_config,设置 PermitRootLogin yes

    其他: ....

    (我只使用ubuntu,随意添加其他平台的解决方法)

  3. 构建一个新的基本框:

    vagrant package --base your-vm-name
    
    Run Code Online (Sandbox Code Playgroud)

    这创建了一个文件 package.box

  4. 将该基本框添加到vagrant:

    vagrant box add ubuntu-root file:///somepath/package.box
    
    Run Code Online (Sandbox Code Playgroud)

    然后,您需要使用此基本框来构建允许以root身份自动登录的vm.

  5. 通过破坏原始的vm vagrant destroy

  6. 编辑原始文件Vagrantfile,将框名称更改为ubuntu-root和用户名root,然后vagrant up创建一个新名称.

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


小智 10

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

将配置代码放在/etc/ssh/sshd_config文件中.

PermitRootLogin yes
Run Code Online (Sandbox Code Playgroud)


Sey*_*ini 7

注意:此方法仅用于本地开发,不安全。您可以在配置盒子时设置密码和 ssh 配置。例如,对于debian/stretch64box,这是我的配置脚本:

config.vm.provision "shell", inline: <<-SHELL
    echo -e "vagrant\nvagrant" | passwd root
    echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
    sed -in 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config
    service ssh restart
SHELL
Run Code Online (Sandbox Code Playgroud)

这会将 root 密码设置为vagrant并允许使用密码进行 root 登录。如果你使用private_networksay with ip address192.168.10.37那么你可以 ssh withssh root@192.168.10.37

您可能需要根据默认文件更改它echosed命令sshd_config


小智 5

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

config.vm.provision "shell", inline: <<-SHELL
    echo "sudo su -" >> .bashrc
SHELL
Run Code Online (Sandbox Code Playgroud)