第一次使用 `homestead ssh` 时连接到 vagrant 是不是有默认密码?

Posted

技术标签:

【中文标题】第一次使用 `homestead ssh` 时连接到 vagrant 是不是有默认密码?【英文标题】:Is there a default password to connect to vagrant when using `homestead ssh` for the first time?第一次使用 `homestead ssh` 时连接到 vagrant 是否有默认密码? 【发布时间】:2015-06-09 14:51:08 【问题描述】:

我正在尝试通过 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”。

【问题讨论】:

【参考方案1】:

在尝试了很多密码并完全搞不懂为什么我的公钥密码不起作用后,我发现我必须使用vagrant 作为密码。

也许此信息对其他人也有帮助 - 那是因为我已将其写在这里。

编辑: 根据 Vagrant 文档,通常用户vagrant 的默认密码是vagrant。 在此处阅读更多信息:official website

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

这样的一行
debug1: Trying private key: /home/aaron/Documents/VMs/.vagrant/machines/default/virtualbox/private_key

【讨论】:

谢谢,这节省了我在 Windows 机器上的时间,我已经有了 Git 的授权密钥,如果不处理转换工具等,Putty 就无法使用它。另一个混淆因素是 Vagrant 本身的 insecure_private_key 变成了Homestead 不会使用它,但我没有意识到这一点,并花了很多时间来确定我应该使用哪个键。所以最后我放弃了,按照你的建议使用了vagrant密码。【参考方案2】:

我也有同样的问题。从 Time Machine 的还原中移动机器后,在另一台主机上。问题在于 vagrant 的 ssh 密钥不是您的密钥,而是 Homestead 目录上的密钥。

我的解决方案:

使用 vagrant / vagrant 访问 Homestead 的虚拟机 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 VM Machine 的其他 shell 上复制到 authorized_keys

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

现在可以通过 vagrant ssh 访问

【讨论】:

这是一个很好的答案;连接时的问题是我选择了错误的身份文件,vagrant ssh-config 中的 IdentityFile 列表是正确的路径【参考方案3】:

默认情况下,Vagrant 使用生成的私钥登录,你可以试试这个:

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

【讨论】:

【参考方案4】:

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

使用连接方式:standard TCP/IP over ssh

然后ssh主机名:127.0.0.1:2222

SSH 用户名:vagrant password vagrant

mysql 主机名:localhost

用户名:homestead password:secret

【讨论】:

【参考方案5】:

在 Windows 机器上,我可以使用 ssh vagrant@VAGRANT_SERVER_IP 从 git bash 登录到 ssh,而无需提供密码

在窗口上使用 Bitvise SSH 客户端 服务器主机:VAGRANT_SERVER_IP 服务器端口:22 用户名:vagrant 密码:vagrant

【讨论】:

【参考方案6】:

在我的例子中,我通过以下输出了解到:

vagrant ssh -- -v

问题是我的 vagrant 生成的私钥被忽略了,因为权限太开放(在 Windows 10 上)。

日志行是:

“C:/My Folder/.vagrant/machines/default/virtualbox/private_key”的权限 太开放了。要求您的私钥文件不是 其他人可以访问。此私钥将被忽略。

因此,在 Windows 资源管理器中,导航到日志中路径上 VM 的私钥,右键单击并选择属性。然后转到安全选项卡并单击高级按钮。接下来,使用完全控制添加您的特定用户,然后选择也具有权限的任何组,然后单击对话框底部的禁用继承按钮并选择删除所有继承。您应该只剩下对 private_key 文件具有权限的自己的用户帐户。单击应用并关闭属性对话框,然后再次尝试vagrant ssh。它现在应该让您无需输入密码即可进入。

【讨论】:

以上是关于第一次使用 `homestead ssh` 时连接到 vagrant 是不是有默认密码?的主要内容,如果未能解决你的问题,请参考以下文章

homestead 多站点,thinkphp5,数据库库相关

使用 Laravel Homestead:“没有指定输入文件”

Laravel 虚拟开发环境 Homestead 密码

Xshell使用root用户连接Ubuntu14.04时,提示SSH服务器拒绝了密码,请再试一次

安装Vagrant出错 安装Homestead出错失败

Homestead.test默认文件给出[未指定输入文件] Ubuntu