Vagrant ssh 连接到主机 127.0.0.1:2222 端口 22:错误文件号

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

每当我尝试连接到本地 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 命令行?

确保你的 vagrant 已经启动并且 运行 通过命令:vagrant up

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

尝试命令:

ssh -p 2222 vagrant@127.0.0.1

我在使用 PHpStorm 通过 SSH 连接到我用 Vagrant 设置的 VirtualBox 来宾计算机时遇到了同样的失败。在我升级到 Windows 10 之前一切正常。升级后,首先我必须升级到 VirtualBox 和 Vagrant 最新版本才能让一切在 Windows 10.

上运行

但是后来我无法使用 PhpStorm ssh 客户端 ssh 进入来宾计算机。经过大量阅读,一切似乎都表明我在我的 Windows 机器上安装了太多的 ssh-keys,但是检查 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.

中的键

现在一切正常:)

我认为以上 outboundexplorer 的回答是正确的。
这是我的 step-by-step 方法:

第 1 步:准确找出要使用的 SSH 设置

确保 vagrant box 运行ning(你已经完成 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 box

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

  • SFTP 主机:127.0.0.1
  • 端口:2222
  • 根路径:/home/ubuntu/my-test-project(这是Vagrant box里面的文件夹,文件会上传到这个文件夹,根据自己的需要更改)
  • 用户名:ubuntu
  • 授权类型:Select "Key pair (OpenSSH or PuTTY)"
  • 私钥文件:指向显示的IdentityFile路径(C:/Projects/....)

...就是这样。