Ruby vagrant ssh无法在Windows上的MobaXterm中工作

Ruby vagrant ssh无法在Windows上的MobaXterm中工作,ruby,windows,ssh,path,vagrant,Ruby,Windows,Ssh,Path,Vagrant,我已经找到git bin目录并将其添加到我的windows路径中。通过启动CMD并键入ssh,我验证了它的工作原理,并得到了一条用法消息。(在将git-bin目录添加到我的路径之前,CMD抱怨ssh不是有效的命令。) 然而,当我从MobaXterm运行vagrant ssh时,我得到了与以前相同的错误。(一个充满ruby错误的页面对我没有帮助。)当我以VAGRANT\u LOG=debug VAGRANT ssh运行它时,我看到: INFO subprocess: Starting proces

我已经找到git bin目录并将其添加到我的windows路径中。通过启动CMD并键入
ssh
,我验证了它的工作原理,并得到了一条用法消息。(在将git-bin目录添加到我的路径之前,CMD抱怨
ssh
不是有效的命令。)

然而,当我从MobaXterm运行
vagrant ssh
时,我得到了与以前相同的错误。(一个充满ruby错误的页面对我没有帮助。)当我以
VAGRANT\u LOG=debug VAGRANT ssh
运行它时,我看到:

INFO subprocess: Starting process: ["C:\\Users\\(myname)\\DOCUME~1\\MOBAXT~1\\slash\\bin/ssh.EXE"]
这是错误的ssh可执行文件;它是安装在MobaXterm中的,如果从CMD窗口运行,它将不起作用

我如何才能让流浪ssh正常工作?

您可以找到一个解释

在文档中,“终端选项卡设置”中提到了这一点 部分,因此您将在“终端”选项卡中找到此选项

转到MobaXterm全局设置窗口,然后单击“终端” 选项卡并选中“使用Windows路径环境”。请注意,如果您是 使用会话时,您必须在此会话中执行相同的操作:编辑 您的会话,然后转到“终端设置”选项卡并检查 “使用Windows路径”选项


您可以在安装git的过程中安装git(),选择“从windows命令提示符使用git和可选的Unix工具”

技巧的一部分是,我不想将windows路径用于任意命令,甚至不想用于ssh。我想在MobaXterm中使用所有版本。我想要的就是能够像在Linux或Mac上一样运行
vagrant ssh

我一直在使用的解决方法是,我在网上的某个地方找到了(但无法再次找到该页面):

“default”是一个典型的流浪环境的框名,只有一个流浪框。如果有多个框,请将“默认”替换为框名:

ssh -F vagrant-ssh host001  # Works the way `vagrant ssh host001` would on another system

这是一个很好的解决方案,只需对工作流进行最少的更改。但是我仍然希望有一种方法可以让
vagrant ssh
工作,而不需要我的vagrant目录中的额外文件。

下载msysgit,并将
msysgit/bin
文件夹包含到
PATH
,现在,您可以在windows上从终端运行
ssh
vagrant ssh

叫我疯子,但这样做怎么样:

  • 像正常情况一样设置漫游Virtualbox虚拟机
  • 在MobaXterm中,创建一个“Bash”shell集成,将工作目录设置作为您正在为其执行此操作的特定VM的Vagrant目录(也称为…该VM的Vagrant文件所在的目录)
  • 在“高级Shell设置”中,使用以下命令(将vagrant路径调整到MobaXterm bash看到的安装vagrant的位置):
命令/drives/c/HashiCorp/Vagrant/bin/Vagrant ssh-config> vagrant ssh-config&&ssh-A-F vagrant ssh-config默认值

Vagrant VM需要启动MobaXterm Bash条目,VM才能工作。我刚刚为我创建的两个Vagrant Virtualbox虚拟机设置了两个Bash shell设置,它似乎工作得很好

最新消息:我发现这一点后,我走得更远了一点。。至少对我来说是这样:)。我为我的每个Vagrant VM添加了额外的CMD shell会话MobaXterm。这些额外的CMD shell会话针对特定于它们的vm执行飘忽不定的halt、up和restart(halt和up的组合)命令。这就是重新启动的样子:

游荡的停顿
流浪者上升
设置/p value=“按Enter键继续”
出口

上述会话的启动目录也是该VM的Vagrantfile所在的目录。哦,请确保在终端设置中选中了“使用Windows路径”


如果您有任何意见,我们将不胜感激。我来这里寻求帮助,我想我已经非常清楚地解释了我的问题……你的评论非常有帮助(而且有效!)。我将这两行代码包装在.bashrc文件中的一个函数中,现在可以使用
vagrantssh
(没有空格)将其ssh到我的VM中。谢谢!正是我需要的。
ssh -F vagrant-ssh host001  # Works the way `vagrant ssh host001` would on another system