我绝对是 Vagrant 的新人,我有以下问题。我使用的是Windows 8.1。
我完成了以下操作:
1)首先我从github将其下载到我的主机的文件夹中,按照以下声明:
git clone https://github.com/Udacity/ud381
2)然后我表演了:
vagrant up
下载了包含来宾VM的Vagrant Box
现在我执行 vagrant up 命令时,我收到此消息:
C:\Users\Andrea\Documents\workspaces\Real-Time\ud381>vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Checking if box 'udacity/ud381' is up to date...
==> default: There was a problem while downloading the metadata for your box
==> default: to check for updates. This is not an error, since it is usually due
==> default: to temporary network problems. This is just a warning. The problem
==> default: encountered was:
==> default:
==> default: Failed connect to atlas.hashicorp.com:443; No error
==> default:
==> default: If you want to check for box updates, verify your network connectio
n
==> default: is valid and try again.
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
default: Adapter 1: nat
==> default: Forwarding ports...
default: 5000 => 5000 (adapter 1)
default: 22 => 2222 (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
default: SSH address: 127.0.0.1:2222
default: SSH username: vagrant
default: SSH auth method: private key
default: Warning: Remote connection disconnect. Retrying...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
==> default: Mounting shared folders...
default: /vagrant => C:/Users/Andrea/Documents/workspaces/Real-Time/ud381
==> default: Machine already provisioned. Run `vagrant provision` or use the `--
provision`
==> default: flag to force provisioning. Provisioners marked to run always will
still run.
我认为这是正确的,但我并不是绝对确定它,因为它似乎有一些警告信息,但它说:默认:机器启动并准备就绪!所以我认为它是好的(可以吗?)
然后我尝试通过SSH连接到它来执行 vagrant ssh 语句但我收到此错误消息:
C:\Users\Andrea\Documents\workspaces\Real-Time\ud381>vagrant ssh
`ssh` executable not found in any directories in the %PATH% variable. Is an
SSH client installed? Try installing Cygwin, MinGW or Git, all of which
contain an SSH client. Or use your favorite SSH client with the following
authentication information shown below:
Host: 127.0.0.1
Port: 2222
Username: vagrant
Private key: C:/Users/Andrea/Documents/workspaces/Real-Time/ud381/.vagrant/machi
nes/default/virtualbox/private_key
在Google上搜索我发现要使用此参数,我需要 git 路径进入 PATH 环境变量。我检查并设置了它,在 PATH 变量中,我有这两个值:
C:\HashiCorp\Vagrant\bin;C:\Program Files\Git\bin
第一个是流浪者路径,第二个是Git路径。
所以这不是问题。在线搜索我也发现了这个StacOverflow讨论:
`ssh` executable not found in any directories in the %PATH%
发送此链接以解决此类问题:https://gist.github.com/haf/2843680
在此链接中,它显示如何将 ssh.rb 文件修改为此文件夹 C:\ vagrant \ vagrant \ embedded \ lib \ ruby \ gems \ 1.9.1 \ gems \流浪-1.0.3 \ lib中\流浪\ ssh.rb
问题是我没有这个文件夹,但是这样:
C:\HashiCorp\Vagrant\embedded\lib\ruby\gems\2.0.0\gems\
并且此文件夹不包含 vagrant-1.0.3 \ lib \ vagrant **子文件夹(包含** ssh.rb 文件),但包含3个名为的目录rake-0.9.6 , rdoc-4.0.0 和 test-unit-2.0.0.0 ,不包含 ssh.rb < / strong>文件。
搜索此文件后,我在这些文件夹中找到了2个不同的版本:
C:\HashiCorp\Vagrant\embedded\gems\gems\vagrant-1.7.4\plugins\kernel_v1\config
和
C:\HashiCorp\Vagrant\embedded\gems\gems\vagrant-1.7.4\plugins\kernel_v2\config
我认为也许与教程的不同可能取决于它被称为一个非常古老的Vagrant版本(它是4岁)并且我安装了 1.7.4 版本Vagrant。
所以我真的不知道我可以通过SSH连接到Vagrant处理的虚拟机。
你能帮助我吗?
TNX
答案 0 :(得分:2)
错误消息
C:\Users\Andrea\Documents\workspaces\Real-Time\ud381>vagrant ssh `ssh`
executable not found in any directories in the %PATH% variable. Is an
SSH client installed?
指出您正在使用的cli(当您在Windows下工作时可能是cmd或powershell)无法找到已安装的ssh客户端。这意味着你的cli无法找到一个可以通过ssh处理连接到另一台服务器(在这种情况下是你的vagrantbox)的程序。 这是一种非常常见的情况,因为Windows没有开箱即用的ssh客户端(与ubuntu或osx不同)。
AFAIK没有ssh程序/命令可以轻松安装并放入PATH,以便它可以与cmd一起使用。
在这种情况下您可能想要做的是安装这些功能附带的不同cli。您在这里有几个选项,它们也在错误消息中说明:
Try installing Cygwin, MinGW or Git, all of which
contain an SSH client
我建议你使用Git Bash,因为你使用git,你可能已经在系统上安装了它。
所以执行一个vagrant ssh
你的第一步将是通过执行程序本身(它带有git,在我的系统上可以在C:\Program Files\Git\git-bash.exe
下找到)或者右边来启动Git Bash单击Windows资源管理器中的目录列表并选择Git Bash here
(这仅在Git安装时选中某个框时才有效)。
它将打开一个新的cli,它可以像linux一样使用命令。
您应该能够进入流浪者目录并立即执行vagrant ssh
。
您在问题中链接的解决方案似乎不再起作用,因为与git一起使用的ssh客户端的路径似乎已经发生了变化。
答案 1 :(得分:1)
在您找到的其他SO帖子中查看Ygor Thomaz' comment。 PATH
路径已更改为:
C:\Program Files\Git\usr\bin
..所以在cmd中运行它:
set PATH=%PATH%;C:\Program Files\Git\usr\bin
相关:
How do you update the GIT_SSH environment variable on Windows https://stackoverflow.com/a/16247703/1869660