Ed *_*ams 123
这很有用:
sudo passwd root
Run Code Online (Sandbox Code Playgroud)
对于那些因为需要首先在vagrant中设置root密码而被抓住的人
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以来,键控安全性有所提高; 此技术将覆盖回使用已知私钥的先前方法.如果在发布之前未执行适当的安全措施,则此解决方案不能用于可公开访问的盒子.
参考:
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,没有更多的工作),你必须:
用户名设置vm vagrant(除了root之外的任何名称)
登录并编辑sshd配置文件.
ubuntu:编辑/etc/ssh/sshd_config,设置 PermitRootLogin yes
其他: ....
(我只使用ubuntu,随意添加其他平台的解决方法)
构建一个新的基本框:
vagrant package --base your-vm-name
Run Code Online (Sandbox Code Playgroud)
这创建了一个文件 package.box
将该基本框添加到vagrant:
vagrant box add ubuntu-root file:///somepath/package.box
Run Code Online (Sandbox Code Playgroud)
然后,您需要使用此基本框来构建允许以root身份自动登录的vm.
通过破坏原始的vm vagrant destroy
编辑原始文件Vagrantfile,将框名称更改为ubuntu-root和用户名root,然后vagrant up创建一个新名称.
我花了一些时间才弄清楚,在我看来这太复杂了.希望流浪者会改善这一点.
小智 10
不要忘了root允许root登录!!!
将配置代码放在/etc/ssh/sshd_config文件中.
PermitRootLogin yes
Run Code Online (Sandbox Code Playgroud)
注意:此方法仅用于本地开发,不安全。您可以在配置盒子时设置密码和 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
您可能需要根据默认文件更改它echo和sed命令sshd_config。
小智 5
将此添加到Vagrantfile对我有用的。这些行相当于您sudo su -每次登录时都输入。请注意,这需要重新配置 VM。
config.vm.provision "shell", inline: <<-SHELL
echo "sudo su -" >> .bashrc
SHELL
Run Code Online (Sandbox Code Playgroud)