第一次使用 `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:“没有指定输入文件”