【问题标题】:Vagrant ssh connect to host 127.0.0.1:2222 port 22: Bad file numberVagrant ssh 连接到主机 127.0.0.1:2222 端口 22:错误文件号
【发布时间】:2015-04-29 17:26:22
【问题描述】:

每当我尝试连接到本地 Vagrant 时,当我从 Windows git bash 运行 ssh vagrant@127.0.0.1:2222 时都会收到此错误:

ssh: connect to host 127.0.0.1:2222 port 22: Bad file number

它以前工作过,所以我不确定是什么原因造成的。当我尝试在 PHPStorm 8 中进行 SFTP 连接时,出现此错误:

Connection to '127.0.0.1' failed.
SSH_MSG_DISCONNECT: 2 Too many authentication failures for vagrant 

我已尝试将 vagrant destroyvagrant box remove laravel/homestead 一起使用,然后从我之前使用 vagrant box add laravel/homestead homestead.box 工作的备份中重新创建该框,但我仍然遇到相同的错误。

我使用的是 Windows 7。

如何才能再次访问我的 vagrant box 命令行?

【问题讨论】:

    标签: ssh vagrant vagrant-windows


    【解决方案1】:

    尝试命令:

    ssh -p 2222 vagrant@127.0.0.1

    【讨论】:

      【解决方案2】:

      上面outboundexplorer 的答案是我相信的正确答案。
      这是我如何做到这一点的分步方法:

      第 1 步:准确了解要使用的 SSH 设置

      确保 vagrant box 正在运行(你已经完成了vagrant up

      从命令行,转到您的项目目录(Vagrantfile 所在的目录)并运行vagrant ssh-config

      你会得到这样的输出:

      Host default
          HostName 127.0.0.1
          User ubuntu
          Port 2222
          UserKnownHostsFile /dev/null
          StrictHostKeyChecking no
          PasswordAuthentication no
          IdentityFile C:/Projects/my-test-project/.vagrant/machines/default/virtualbox/private_key
          IdentitiesOnly yes
          LogLevel FATAL
      

      第 2 步:将 PHPStorm 设置为 SFTP 到 Vagrant 盒子

      基于上面显示的配置设置,我设置了以下 SFTP 远程部署服务器:

      • SFTP 主机:127.0.0.1
      • 端口:2222
      • 根路径:/home/ubuntu/my-test-project(这是 Vagrant 框中的文件夹,文件将上传到该文件夹​​,更改为适合您需要的文件夹)
      • 用户名:ubuntu
      • 身份验证类型:选择“密钥对(OpenSSH 或 PuTTY)”
      • 私钥文件:指向显示的IdentityFile 路径(C:/Projects/....)

      ...就是这样。

      【讨论】:

        【解决方案3】:

        当我使用 PHpStorm SSH 到我用 Vagrant 设置的 VirtualBox 来宾机器时,我遇到了同样的失败。在升级到 Windows 10 之前一切正常。升级后,首先我必须升级到 VirtualBox 和 Vagrant 最新版本才能在 Windows 10 上运行一切。

        但后来我无法使用 PhpStorm ssh 客户端 ssh 进入来宾计算机。经过大量阅读,一切似乎都表明我在我的 Windows 机器上安装了太多 ssh 密钥,但检查 regedit 只是表明我只有几个密钥,应该少于建议的最大 5 个密钥(默认为)。最后我做了vagrant ssh,它不允许我通过 ssh 进入来宾机器,但它确实为我重新确认了 ssh 详细信息。然后我意识到,在所有新安装之后,它不希望我使用 C:\Users\Andy\.vagrant.d\insecure_private_key 密钥,而是使用它放置在项目本身中 C:/Users/Andy/CodeLab5/vagrant/.vagrant/machines/default/virtualbox/private_key 的密钥。

        现在一切都恢复正常了 :)

        【讨论】:

          【解决方案4】:

          确保您的 vagrant 通过命令启动并运行:vagrant up

          然后执行 vagrant ssh。它将连接到 vagrant localhost

          【讨论】:

          • 我可以联系到vagrant ssh,谢谢!知道为什么标准 ssh 连接尝试会开始失败吗?
          • 尝试使用 ssh vagrant@localhost 进行标准 ssh 连接,在此之前不要忘记检查主机文件中 localhost 的条目。
          猜你喜欢
          • 2017-11-19
          • 1970-01-01
          • 1970-01-01
          • 2015-05-02
          • 2014-05-21
          • 2021-08-29
          • 1970-01-01
          • 2015-09-17
          • 2013-03-13
          相关资源
          最近更新 更多