问题:我在框中输入的第一个命令su -
。{/ p>
问题:默认情况下如何让vagrant ssh
使用root用户?
版本:vagrant 1.6.5
答案 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,不再需要工作),你必须:
按用户名vagrant
设置vm(除了root之外的任何名称)
登录并编辑sshd配置文件。
ubuntu:编辑/etc/ssh/sshd_config
,设置PermitRootLogin yes
其他人:......
(我只使用ubuntu,随意添加其他平台的解决方法)
构建一个新的基本框:
vagrant package --base your-vm-name
这会创建一个文件package.box
将该基本框添加到vagrant:
vagrant box add ubuntu-root file:///somepath/package.box
然后,您需要使用此基本框来构建允许以root身份自动登录的vm。
通过vagrant destroy
修改原始Vagrantfile
,将框名称更改为ubuntu-root
,将用户名更改为root
,然后vagrant up
创建一个新名称。
我花了一些时间才弄清楚,在我看来这太复杂了。希望流浪者会改善这一点。
答案 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 root@192.168.10.37
文件来更改echo
和sed
命令。
答案 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'