我无法连接到 Vagrant 处理的 VM:在 %PATH% 的任何目录中都找不到 `ssh` 可执行文件,但我有它
I can't connect to a Vagrant handled VM: `ssh` executable not found in any directories in the %PATH%, but I have it
我完全是 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%
针对此类问题发给link:https://gist.github.com/haf/2843680
在此 link 中,它展示了如何将 ssh.rb 文件修改到此文件夹 C:\vagrant\vagrant\embedded\lib\ruby\gems 中。 9.1\gems\vagrant-1.0.3\lib\vagrant\ssh.rb
问题是我没有这个文件夹,而是这样的:
C:\HashiCorp\Vagrant\embedded\lib\ruby\gems.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 文件。
搜索此文件后,我在这些文件夹中发现了 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 处理的 VM。
你能帮帮我吗?
Tnx
错误信息
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)。
据我所知,没有 ssh program/command 可以轻松安装并放入您的 PATH,以便它可以与 cmd 一起使用。
在这种情况下,您可能想要做的是安装具有这些功能的不同 cli。你这里有几个选项,它们在错误消息中也有说明:
Try installing Cygwin, MinGW or Git, all of which
contain an SSH client
我建议您使用 Git Bash,因为您正在使用 git.
,您可能已经在系统上安装了它
因此,要执行 vagrant ssh
,您的第一步将是通过执行程序本身(git 附带的,在我的系统上它开始 Git Bash可以在以下位置找到:C:\Program Files\Git\git-bash.exe
) 或右键单击 Windows Explorer 中的目录列表并选择 Git Bash here
(这只有在您选中 Git 上的某个框时才有效安装)。
它将打开一个新的 cli,它与 linux 类似的命令一起工作。
你现在应该能够进入你的 vagrant 目录并执行 vagrant ssh
。
您在问题中链接到的解决方案似乎不再有效,因为与 git 一起使用的 ssh 客户端路径似乎已经改变。
请参阅您找到的其他 SO post 中的 Ygor Thomaz' comment。 PATH
路径已更改为:
C:\Program Files\Git\usr\bin
..so 运行 这在 cmd:
set PATH=%PATH%;C:\Program Files\Git\usr\bin
相关:
我完全是 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%
针对此类问题发给link:https://gist.github.com/haf/2843680
在此 link 中,它展示了如何将 ssh.rb 文件修改到此文件夹 C:\vagrant\vagrant\embedded\lib\ruby\gems 中。 9.1\gems\vagrant-1.0.3\lib\vagrant\ssh.rb
问题是我没有这个文件夹,而是这样的:
C:\HashiCorp\Vagrant\embedded\lib\ruby\gems.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 文件。
搜索此文件后,我在这些文件夹中发现了 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 处理的 VM。
你能帮帮我吗?
Tnx
错误信息
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)。
据我所知,没有 ssh program/command 可以轻松安装并放入您的 PATH,以便它可以与 cmd 一起使用。
在这种情况下,您可能想要做的是安装具有这些功能的不同 cli。你这里有几个选项,它们在错误消息中也有说明:
Try installing Cygwin, MinGW or Git, all of which
contain an SSH client
我建议您使用 Git Bash,因为您正在使用 git.
,您可能已经在系统上安装了它因此,要执行 vagrant ssh
,您的第一步将是通过执行程序本身(git 附带的,在我的系统上它开始 Git Bash可以在以下位置找到:C:\Program Files\Git\git-bash.exe
) 或右键单击 Windows Explorer 中的目录列表并选择 Git Bash here
(这只有在您选中 Git 上的某个框时才有效安装)。
它将打开一个新的 cli,它与 linux 类似的命令一起工作。
你现在应该能够进入你的 vagrant 目录并执行 vagrant ssh
。
您在问题中链接到的解决方案似乎不再有效,因为与 git 一起使用的 ssh 客户端路径似乎已经改变。
请参阅您找到的其他 SO post 中的 Ygor Thomaz' comment。 PATH
路径已更改为:
C:\Program Files\Git\usr\bin
..so 运行 这在 cmd:
set PATH=%PATH%;C:\Program Files\Git\usr\bin
相关: