【问题标题】: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”。

【问题讨论】:

    标签: ssh vagrant laravel-5 homestead


    【解决方案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。它现在应该让您无需输入密码即可进入。

          【讨论】:

            猜你喜欢
            • 2017-07-14
            • 1970-01-01
            • 2015-09-27
            • 1970-01-01
            • 2014-11-26
            • 1970-01-01
            • 2017-07-16
            • 1970-01-01
            • 2020-09-24
            相关资源
            最近更新 更多