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

时间:2014-09-10 06:31:20

标签: login ssh vagrant root

问题:我在框中输入的第一个命令su -。{/ p>

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

版本:vagrant 1.6.5

10 个答案:

答案 0 :(得分:116)

这很有用:

sudo passwd root

任何因为首先在流浪汉中设置root密码而被抓住的人

答案 1 :(得分:102)

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

config.ssh.username = 'root'
config.ssh.password = 'vagrant'
config.ssh.insert_key = 'true'

vagrant ssh开始,您将以[{1}}的身份登录,并且应该预期以下内容:

root

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

<强>参考:

答案 2 :(得分:31)

如果您使用的是ubuntu / trusty64框,则此功能正常:

vagrant ssh

进入ubuntu框后:

sudo su

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

sudo -i
passwd

现在编辑文件/etc/ssh/sshd_config

中的以下行
PermitRootLogin yes

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

adduser johndoe

等到它要求输入密码。

答案 3 :(得分:10)

如果Vagrantfile如下:

config.ssh.username = 'root'
config.ssh.password = 'vagrant'
config.ssh.insert_key = 'true'

但是流浪汉仍然问你root密码, 很可能您使用的基本框未配置为允许root登录。

例如,官方的ubuntu14.04框未在PermitRootLogin yes中设置/etc/ssh/sshd_config

所以如果你想一个盒子可以以root身份登录(只有Vagrantfile,不再需要工作),你必须:

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

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

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

    其他人:......

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

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

    vagrant package --base your-vm-name
    

    这会创建一个文件package.box

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

    vagrant box add ubuntu-root file:///somepath/package.box
    

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

  5. 通过vagrant destroy

  6. 销毁原始vm
  7. 修改原始Vagrantfile,将框名称更改为ubuntu-root,将用户名更改为root,然后vagrant up创建一个新名称。

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

答案 4 :(得分:9)

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

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

PermitRootLogin yes

答案 5 :(得分:4)

注意:该方法仅用于本地开发,不安全。 设置框时,您可以设置密码和ssh config。例如,在(defun mystretchh ( dis / pt1 pt2 sel ) (while (and (setq pt1 (getpoint "\nFirst point of selection window: ")) (setq pt2 (getcorner pt1 "\nSecond point of selection window: ")) (not (setq sel (ssget "_C" pt1 pt2))) ) (princ "\nNo objects where found in the selection window.") ) (if sel (progn (command "_.stretch" sel "" "_non" '(0 0) "_non" (list dis 0)) t ) ) ) (defun c:test (/ a x c p) ;ungroup (command "pickstyle" 0) ;variables (initget (+ 1 2 4)) (setq p (getpoint "\nSelect first point: ")) (setq c (getpoint "\nSelect second point: ")) (command "_.dist" p c) (setq x (rtos (getvar 'distance) 2 3)) ;calculate distance to stretch (setq a (- x 0.51)) ;stretch (mystretchh a) ;regroup (command "pickstyle" 1) (print "Module modified.") (princ) ) 框中,这是我的配置脚本:

debian/stretch64

这会将root密码设置为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 ,并允许使用密码进行root登录。如果您使用的是vagrant,并且IP地址为private_network,则可以使用192.168.10.37

ssh

您可能需要根据默认的ssh root@192.168.10.37文件来更改echosed命令。

答案 6 :(得分:1)

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

所以我认为这个值得知道:

vagrant ssh servername -c "echo vagrant | sudo -S shutdown 0"

vagrant是回显到sudo命令的密码,因为众所周知,vagrant帐户具有sudo权限,当你sudo时,你需要指定用户帐户的密码,而不是root。 。当然,默认情况下,流浪者用户的密码是vagrant

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

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

希望这有帮助。

答案 7 :(得分:0)

将其添加到sudo su -对我有用。这些行相当于您每次登录时输入config.vm.provision "shell", inline: <<-SHELL echo "sudo su -" >> .bashrc SHELL 。请注意,这需要重新配置VM。

{{1}}

答案 8 :(得分:0)

即使尝试使用PermitRootLogin yes,尝试以root用户身份登录时,我在配置方面也遇到了麻烦。我做到了,因此只有vagrant ssh命令受到影响:

# Login as root when doing vagrant ssh
if ARGV[0]=='ssh'
  config.ssh.username = 'root'
end

答案 9 :(得分:-7)

vagrant destroy
vagrant up

请将此添加到流浪文件中:

config.ssh.username = 'vagrant'
config.ssh.password = 'vagrant'
config.ssh.insert_key = 'true'