每当我试图连接到本地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 destroy
和vagrant box remove laravel/homestead
,然后从以前使用vagrant box add laravel/homestead homestead.box
的备份中重新创建盒子,但我仍然会遇到同样的错误。
我使用的是Windows7。
我该怎么做才能再次访问我的流浪箱命令行?
我相信上面的outboundexplorer的答案是正确的
以下是我如何做到这一点的分步方法:
步骤1:准确了解要使用的SSH设置
确保流浪箱正在运行(你已经完成了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/….)
就是这样。
尝试命令:
ssh-p 2222vagrant@127.0.0.1
当我使用PHpStorm将SSH连接到我使用Vagrant设置的VirtualBox客户机时,我也遇到了同样的故障。在我升级到Windows 10之前,一切都很好。升级后,首先我必须升级到VirtualBox和Vagrant的最新版本,以使一切都能在Windows 10上运行。
但后来我无法使用PhpStorm ssh客户端将ssh发送到客户机。经过大量阅读,一切似乎都表明我的Windows机器上安装了太多ssh密钥,但检查regedit
只显示我只有几个密钥,应该少于建议的最大5个密钥(默认值)。最后,我做了vagrant ssh
,它不允许我通过ssh进入客户机,但它确实为我重新确认了ssh的详细信息。然后我意识到,在所有新安装之后,它不希望我使用C:UsersAndy.vagrant.dinsecure_private_key
密钥,而是使用它在C:/Users/Andy/CodeLab5/vagrant/.vagrant/machines/default/virtualbox/private_key
项目中放置的密钥。
现在一切都正常工作:)
通过以下命令确保您的流浪者已启动并正在运行:流浪者向上
然后执行流浪ssh。它将连接到流浪本地主机