首次使用`homestead ssh`连接Vagrant时是否有默认密码?

115

我正在尝试通过 homestead ssh 连接到 Vagrant:

vagrant@127.0.0.1's password:

但是我的公钥密码不起作用。
我的 Homestead.yaml 文件如下:

authorize: ~/.ssh/id_rsa.pub

keys:
    - ~/.ssh/id_rsa

我正在使用"Laravel Homestead版本2.0.14"和"Vagrant 1.7.2"。

6个回答

281

尝试了许多密码后,我变得非常困惑为什么我的公钥密码不起作用。后来我发现我必须使用vagrant作为密码。

也许这个信息也能帮助其他人 - 这是因为我把它写在这里。

编辑:
根据Vagrant文档,用户vagrant通常有一个默认密码,即vagrant
请在官方网站上阅读更多信息。

然而,在最近的版本中,他们已经开始为每台机器生成密钥对。如果你想找出密钥的位置,你可以运行vagrant ssh -- -v。这将显示ssh登录过程的详细输出。你应该会看到一行像这样的内容:

debug1: Trying private key: /home/aaron/Documents/VMs/.vagrant/machines/default/virtualbox/private_key

1
谢谢,这个解决方案在 Windows 机器上救了我的一天。我已经有 Git 的授权密钥,但是 Putty 无法使用它们,除非处理转换工具等。另一个混淆因素是 Vagrant 自身的 insecure_private_key,在 Homestead 中没有被使用,但我没有意识到这一点,花费了很多时间来弄清楚应该使用哪个密钥。最后,我放弃了,按照你的建议使用了 vagrant 密码。 - JustAMartin
截至今天,凭证为:用户为vagrant,密码为。 - Andrew F.

18

我也遇到了同样的问题。在从Time Machine的还原中将机器移动到另一台主机后,出现了一个问题:vagrant的ssh密钥不是你的密钥,而是Homestead目录上的密钥。

我的解决方案:

  • 使用vagrant / vagrant访问Homestead VM
  • vagrant ssh-config查看ssh配置

在终端上运行

vagrant ssh-config
Host default
HostName 127.0.0.1
User vagrant
Port 2222
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
PasswordAuthentication no
IdentityFile "/Users/MYUSER/.vagrant.d/insecure_private_key"
IdentitiesOnly yes
LogLevel FATAL
ForwardAgent yes

创建一个新的SSH密钥对

ssh-keygen -f /Users/MYUSER/.vagrant.d/insecure_private_key

复制公钥的内容

cat /Users/MYUSER/.vagrant.d/insecure_private_key.pub

在Homestead虚拟机中的另一个Shell中将内容复制到authorized_keys文件中。

vagrant@homestad:~$ echo 'CONTENT_PASTE_OF_PRIVATE_KEY' >> ~/.ssh/authorized_keys

现在可以使用vagrant ssh进行访问


这是一个很好的答案;我连接时遇到的问题是我选择了错误的身份文件,vagrant ssh-config中的IdentityFile列表是正确的路径。 - user9903

13

默认情况下,Vagrant使用生成的私钥进行登录,您可以尝试以下操作:

ssh -l ubuntu -p 2222 -i .vagrant/machines/default/virtualbox/private_key 127.0.0.1

11

这是默认的工作设置 https://www.youtube.com/watch?v=XiD7JTCBdpI

使用连接方法:标准TCP/IP over ssh

然后ssh主机名:127.0.0.1:2222

SSH用户名:vagrant密码vagrant

MySQL主机名:localhost

用户名:homestead密码:secret


4
在Windows机器上,我能够使用以下命令从Git Bash登录ssh而无需提供密码:
ssh vagrant@VAGRANT_SERVER_IP 在窗口使用Bitvise SSH客户端: 服务器主机:VAGRANT_SERVER_IP
服务器端口:22
用户名:vagrant
密码:vagrant

0
在我的情况下,我是通过输出学习的:
vagrant ssh -- -v

问题是我的 Vagrant 生成的私钥被忽略了,因为权限过于开放(在 Windows 10 上)。
日志行如下:
“C:/My Folder/.vagrant/machines/default/virtualbox/private_key”的权限太开放了。要求您的私钥文件不可被其他人访问。此私钥将被忽略。
因此,在 Windows Explorer 中导航到日志中的路径上的 VM 的私钥,右键单击并选择属性。然后转到“安全”选项卡并单击“高级”按钮。接下来,添加具有完全控制权的特定用户,然后选择具有权限的任何组,并单击对话框底部的“禁用继承”按钮,并选择删除所有继承。您只应该保留自己的用户帐户对 private_key 文件的权限。单击应用并关闭属性对话框,然后再次尝试“vagrant ssh”。现在应该可以让您无需输入密码登录了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接