我无法连接到处理过的虚拟机:`ssh`可执行文件在%path%的任何目录中都找不到,但我有它

3zwjbxry  于 2021-06-21  发布在  Storm
关注(0)|答案(2)|浏览(322)

我是一个全新的流浪者,我有以下问题。我使用的是Windows8.1。
我做了以下操作:
1) 首先,我从github将其下载到主机的一个文件夹中,地址如下:

git clone https://github.com/Udacity/ud381

2) 然后我表演了:

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 statment,但得到以下错误消息:

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路径。
所以这不是问题所在。在网上搜索时,我还发现了以下讨论:
在%path%的任何目录中找不到sshexecutable
发送到此链接以解决此类问题:https://gist.github.com/haf/2843680
在这个链接中,它展示了如何将ssh.rb文件修改到这个文件夹c:\vagrant\vagrant\embedded\lib\ruby\gems\1.9.1\gems\vagrant-1.0.3\lib\vagrant\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文件。
在搜索此文件时,我在以下文件夹中找到了两个不同的版本:

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年了),并且我已经安装了vagrant的1.7.4版本。
所以我真的不知道我可以用ssh连接到vagrant处理的vm。
你能帮助我吗?
tnx公司

zsbz8rwp

zsbz8rwp1#

看到伊戈尔·托马兹在你找到的另一个so帖子中的评论。这个 PATH 路径已更改为:

C:\Program Files\Git\usr\bin

…所以在cmd中运行这个:

set PATH=%PATH%;C:\Program Files\Git\usr\bin

相关:
如何在win上更新git\u ssh环境变量dowshttps://stackoverflow.com/a/16247703/1869660

v1uwarro

v1uwarro2#

错误消息

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程序/命令,您可以轻松地安装并放入您的路径中,这样它就可以与cmd一起工作。
在这种情况下,您可能需要安装这些功能附带的另一个cli。这里有几个选项,它们也在错误消息中说明:

Try installing Cygwin, MinGW or Git, all of which
contain an SSH client

我建议您使用gitbash,因为您使用的是git,所以您可能已经在系统上安装了gitbash。
所以要执行 vagrant ssh 第一步是启动git bash,方法是执行程序本身(git附带的程序,在我的系统上可以在以下位置找到它: C:\Program Files\Git\git-bash.exe )或者在windows资源管理器的目录列表中单击鼠标右键,然后选择 Git Bash here (只有在git安装时选中某个复选框,这才有效)。
它将打开一个新的cli,它可以使用类似linux的命令。你应该能够cd到你的流浪目录并执行 vagrant ssh 现在。
您在问题中链接到的解决方案似乎不再有效,因为与git连接的ssh客户机的路径似乎已经改变。

相关问题