在Windows中如何SSH到Vagrant虚拟机?

173

我正在使用Vagrant在Windows中启动一个VirtualBox虚拟机。在其他平台中,我可以直接

$ vagrant ssh

如何在Windows中连接到此Vagrant box?

Vagrant文档建议使用PuTTy进行连接,但这种方式也没有起作用:

http://docs-v1.vagrantup.com/v1/docs/getting-started/ssh.html


2
大型教程,介绍如何在Windows 7/8中SSH到Vagrant虚拟机箱的操作步骤。链接 - Sliq
12
这不再是问题了。如果你的路径中有ssh.exe(例如c:\Program Files\git\bin),那么“vagrant ssh”就可以工作了。 - Omri Spector
1
FYI,由于许可证原因,Vagrant 不包括 ssh。虽然这似乎是可能的,但在律师批准之前,我们不会这样做。在 Windows 安装程序中默认安装 ssh.exe……这让我感到困惑。 - KCD
23个回答

2
现在我有一个更好的解决方案,可以无痛升级Vagrant。 它基于补丁文件。
vagrantfile的第一行应该是:
load "vagrantfile_ssh" if Vagrant::Util::Platform.windows?

修补后的vagrantfile_ssh文件(原名为ssh.rb)应该存在于与vagrantfile相同的目录中。 这既优雅又实用。

下载修补后的vagrantfile_ssh


1
Vagrant安装文件夹包含一个ssh.exe,它的行为类似于Linux上的ssh(1)(使用相同的标志/参数)。
要查看所有使用的参数,可以运行vagrant ssh-config或vagrant ssh --debug以获得更详细的输出。
从PowerShell中:
C:\\HashiCorp\\Vagrant\\embedded\\usr\\bin/ssh.EXE ubuntu@127.0.0.1 -p 2222 -o LogLevel=FATAL -o DSAAuthentication=yes -o Strict
HostKeyChecking=no -i "C:/Users/path/to/project/.vagrant/machines/default/virtualbox/private_key"

这在以下情况下非常有用:vagrant status 显示您的虚拟机处于 poweroffsuspended 模式,但您确定它实际上正在运行时,可以强制进行 ssh 连接。
如果你不想记住/输入上述命令,只需将其写入一个 vagrant.ps1 文件中,以便您可以使用 .\vagrant_ssh.ps1 从 powershell 中执行它。

1
非常简单,一旦安装了Vagrant管理器和虚拟机,尝试在Windows上安装cygwin,但在安装cygwin时,请确保选择SSH包和VIM包,这将使您的系统能够从cygwin登录到您的VM,在通过vagrant启动您的机器之后。

这是这里最好的答案。Cygwin将为您提供类似于bash的终端,非常棒! - Neoraptor

1

个人而言,我只使用Cygwin。它允许您在Windows中使用许多常见的*nix命令,其中包括SSH。


你需要修改你的 PATH,将 Cygwin 的 bin 目录加入进去,例如 set PATH=%PATH%;c:\cygwin\bin - David Soroko

1

Windows 7(未在其他版本上测试)

  1. 右键单击“我的电脑”,然后点击属性
  2. 点击高级系统设置
  3. 点击环境变量
  4. 在“系统变量”下的第二个框中,向下滚动并单击变量“Path”,然后单击编辑
  5. 确保路径包含在变量值中,通过添加(如果不存在,则为分号和)C:\ Program Files(x86)\ Git \ bin; (或您的ssh.exe路径)
  6. 确定>确定>确定并重新启动Windows
  7. 您将不得不运行vagrant up,但之后vagrant ssh应该永久工作

更多信息可能有助于其他版本... http://www.computerhope.com/issues/ch000549.htm


1
你可以使用Windows的模拟器终端cmder。以下是安装步骤:
  1. 访问cmder.net;
  2. 点击下载完整版;
  3. 解压缩;
  4. (可选)将您自己的可执行文件放入bin文件夹中,以注入到您的路径中。
  5. 运行Cmder (Cmder.exe)。

enter image description here

在Windows上使用终端cmder

现在执行设置VM vagrant所需的命令,要仅连接,请执行vagrant ssh命令;注意cmder提供嵌入式ssh客户端。

希望这可以帮助到您。


0
一个很好的替代 PuTTY 的终端模拟器是 Mintty。它比 PuTTY 有更多可配置的选项。

0
注意:当出现“login as:”提示时,请输入“vagrant”作为用户名(不带引号)。- Snorkpete Jun 28 '12 at 14:14
或者您可以进入“类别->连接->Rlogin”,并将“自动登录用户名”字段设置为“Vagrant”。
保存会话。

最好检查 vagrant ssh-config 的输出,确保这是正确的用户名:在我的 VM 上,ubuntu/xenial64,它是 ubuntu - perlyking

0

我在Windows 7、8.1和Windows 10上使用vagrant ssh命令与git ssh

要安装,只需从msysgit项目页面下载msysgit即可。

要运行ssh.exe,只需将bin文件夹包含到Windows环境变量中或从Git下载页面安装git并将msysgit bin文件夹复制到C:\Program Files\Git\bin中即可。


0

这里有另一种解决方案,但仅适用于Windows 10的虚拟机中测试资源管理器。 ssh用户:IEUser ssh密码:Passw0rd!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接