SSH到Windows中的Vagrant框?

Sat*_*ish 170 windows ssh virtualbox virtual-machine vagrant

我正在使用Vagrant在Windows中启动VirtualBox VM.在其他平台上,我可以

$ vagrant ssh
Run Code Online (Sandbox Code Playgroud)

连接到VM.

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

在Vagrant文​​档中建议使用PuTTy的方式也不起作用:

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

Dro*_*sky 241

我使用PuTTY连接到Windows7上的Vagrant框.

确保你

  • %USERPROFILE%\.vagrant.d\insecure_private_key使用PuTTYGen将其转换为.ppk
  • 在PuTTY会话中使用.ppk密钥 - 在Connection> SSH> Auth> Private key file中配置
  • 使用主机 127.0.0.1
  • 使用端口2222而不是22
  • 您可以在Connection> SSH> Auth> Private key下设置默认用户名(vagrant)进行身份验证

  • 另请注意:当login as:prompt出现时,输入'vagrant'作为用户名(不带引号). (28认同)
  • 您可以在"连接>数据>自动登录用户名"下设置默认用户名,PPK设置在"连接> SSH>身份验证>私钥"下进行身份验证 (20认同)
  • 您可以使用`vagrant ssh-config`来了解要给putty的选项. (8认同)
  • 然后为Vagrant中的每个VM执行此操作.你知道,Vagrant可以使用多个VM.所以,只需使用正确的解决方案,而不是解决方法:下面有我的答案.Vagrant中的小补丁. (5认同)

Mic*_*eld 121

您必须通过仅修改一个文件来修补一些Vagrant代码ssh.rb.

所有信息都在这里:https://gist.github.com/2843680

vagrant ssh 现在也可以在Windows中使用,就像在Linux中一样.


编辑:在较新的版本中,这变得不必要了.您仍然需要将您的路径添加ssh.exe到您的PATH变量中:

在计算机上搜索ssh.exe,复制Path(即C:\Program Files (x86)\Git\bin),打开"系统偏好设置",找到" 环境变量设置",单击"路径变量",添加路径,使用分隔现有路径;.

  • 这似乎是在三个月前合并的.它绝对存在于1.2.2版本中. (4认同)
  • @Alex它肯定已经修补了最近的Vagrant版本.我测试了它并在此处记录:http://www.robertpate.net/blog/2013/getting-the-vagrant-ssh-command-to-work-on-windows/ (2认同)

gab*_*ese 96

使用git二进制文件的另一种选择:

  1. 安装git:http://git-scm.com/download/win
  2. 开始菜单> cmd(shift +输入以管理员身份)
  3. set PATH=%PATH%;C:\Program Files\Git\usr\bin
  4. vagrant ssh

希望这可以帮助 :)

只需几个月后在Windows上使用它即可获得奖励:使用Console而不是Win终端,这样您就可以随时打开一个带有PATH设置的新终端选项卡(在选项上配置它)

  • 对于Git 2.5.0,PATH应为"C:\ Program Files\Git\usr\bin". (4认同)
  • 谢谢,但我现在使用[conemu](https://code.google.com/p/conemu-maximus5/).它与Console类似但更灵活.我有它包装许多控制台,如cmd.exe,git bash和putty与alliases和其他花哨的东西. (2认同)

Raf*_*ski 72

下载Putty:http://www.chiark.greenend.org.uk/~sgtatham/putty/

使用putty.exe:

Putty GUI:

HostName: 127.0.0.1
Port: 2222
Run Code Online (Sandbox Code Playgroud)

连接时(终端屏幕):

User: vagrant
Passwd: vagrant
Run Code Online (Sandbox Code Playgroud)

在尝试连接之前,请使用cmd.exe验证您的VM:

 vagrant status
Run Code Online (Sandbox Code Playgroud)

如果它用完了:

vagrant up
Run Code Online (Sandbox Code Playgroud)


beg*_*gie 29

接受的答案是真正有用但它可能发生,而不是下面的键:

%USERPROFILE%\.vagrant.d\insecure_private_key
Run Code Online (Sandbox Code Playgroud)

必须将不同的密钥转换为Putty的格式:

{vagrant_machine_root}/.vagrant/machines/default/virtualbox/private_key
Run Code Online (Sandbox Code Playgroud)

哪个{vagrant_machine_root}Vagrantfile我们想要使用Putty连接到的机器的文件夹.

正如@ibizaman提到vagrant ssh-config用来检查vagrant使用的是什么键:

$ vagrant ssh-config
Host default
  HostName 127.0.0.1
  User vagrant
  Port 2222
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile c:/dev/test/.vagrant/machines/default/virtualbox/private_key <-- HERE IS THE KEY YOU NEED TO CONVERT TO THE PUTTY FORMAT
  IdentitiesOnly yes
  LogLevel FATAL
Run Code Online (Sandbox Code Playgroud)

  • 如果你想使用Putty,那么这是最好的答案.您必须转换正确的私钥.非常感谢! (4认同)

cam*_*ohe 11

现在您还可以使用以下插件使用putty进行连接:

https://github.com/nickryand/vagrant-multi-putty

只是执行

vagrant plugin安装vagrant-multi-putty

并确保putty.exe和puttygen.exe在你的PATH中

然后你就可以使用了

流浪腻子

上述可执行文件可从以下网址获得:

http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html上


Kri*_*mar 6

  1. 在您的cmd控制台中键入以下内容:

    set PATH=%PATH%;C:\Program Files (x86)\Git\bin
    
    Run Code Online (Sandbox Code Playgroud)

要么

  1. 永久设置系统环境变量中的路径:

    C:\Program Files (x86)\Git\bin;
    
    Run Code Online (Sandbox Code Playgroud)