SSH для Vagrant в Windows? - PullRequest
       140

SSH для Vagrant в Windows?

170 голосов
/ 27 марта 2012

Я использую Vagrant для запуска виртуальной машины VirtualBox в Windows.На других платформах я могу просто

$ vagrant ssh

подключиться к виртуальной машине.

Как мне подключиться к этому Vagrant-боксу в Windows?

Способ, предложенный в Vagrantдокументация по использованию PuTTy также не работала:

http://docs -v1.vagrantup.com / v1 / docs / Getting-Start / ssh.html

Ответы [ 22 ]

239 голосов
/ 29 марта 2012

Я использую PuTTY для подключения к моим Vagrant-боксам на Windows7.

Убедитесь, что вы

  • конвертировали %USERPROFILE%\.vagrant.d\insecure_private_key в .ppk, используя PuTTYGen
  • используйте ключ .ppk в вашем сеансе PuTTY - настроено в Соединение> SSH> Auth> Файл закрытого ключа
  • используется хост 127.0.0.1
  • используется порт 2222 вместо 22
  • вы можете установить имя пользователя по умолчанию (vagrant) в Соединение> SSH> Аутентификация> Личный ключ для аутентификации
120 голосов
/ 21 ноября 2012

Вы должны исправить некоторый код Vagrant, изменив только один файл, ssh.rb.

Вся информация здесь: https://gist.github.com/2843680

vagrant ssh теперь будет работать и в Windows, как и в Linux.


РЕДАКТИРОВАТЬ : В более новых версиях это стало ненужным. Вам все еще нужно добавить путь к вашему ssh.exe к вашей PATH переменной :

Найдите на своем компьютере ssh.exe , скопируйте путь (т. Е. C:\Program Files (x86)\Git\bin), откройте Системные настройки, найдите переменную среды Настройки, щелкните переменную пути, добавьте путь, разделяя существующие пути, используя ;.

95 голосов
/ 27 апреля 2013

Еще один вариант использования двоичных файлов git:

  1. Установить git: http://git -scm.com / download / win
  2. Меню Пуск> cmd (Shift + Enter, чтобы перейти от имени администратора)
  3. set PATH=%PATH%;C:\Program Files\Git\usr\bin
  4. vagrant ssh

Надеюсь, это поможет:)

Просто бонус после нескольких месяцев использования этого в Windows: используйте Консоль вместо терминала Win, так что вы всегда можете открыть новую вкладку терминала с установленной переменной PATH (настройте ее для параметров)

72 голосов
/ 09 октября 2012

Скачать замазку: http://www.chiark.greenend.org.uk/~sgtatham/putty/

Использование putty.exe:

Замазка GUI:

HostName: 127.0.0.1
Port: 2222

При подключении (экран терминала):

User: vagrant
Passwd: vagrant

Прежде чем пытаться подключиться, проверьте свою виртуальную машину с помощью cmd.exe:

 vagrant status

Если он отключен, используйте:

vagrant up
29 голосов
/ 30 января 2015

Принятый ответ действительно полезен, однако может случиться так, что вместо следующего ключа:

%USERPROFILE%\.vagrant.d\insecure_private_key

другой ключ необходимо преобразовать в формат Замазки:

{vagrant_machine_root}/.vagrant/machines/default/virtualbox/private_key

Где {vagrant_machine_root} - это папка с Vagrantfile машины, к которой мы хотим подключиться с помощью Putty.

Как упоминалось @ibizaman, используйте vagrant ssh-config, чтобы проверить, какой ключ используетсяБродяга:

$ 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
11 голосов
/ 20 августа 2014

Теперь вы также можете использовать следующий плагин для подключения с помощью замазки:

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

Просто выполните

vagrant plugin install vagrant-multi-putty

и убедитесь, что putty.exe и puttygen.exe находятся в вашем PATH

Тогда вы сможете использовать

vagrant putty

Вышеупомянутые исполняемые файлыдоступно от:

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

6 голосов
/ 24 октября 2014

Либо

  1. В вашей консоли cmd введите следующее:

    set PATH=%PATH%;C:\Program Files (x86)\Git\bin
    

OR

Постоянно установить путь в переменных среды вашей системы:

C:\Program Files (x86)\Git\bin;
4 голосов
/ 17 июля 2014

Существует пакет OpenSSH для Windows, который по сути является урезанным Cygwin. Он имеет msi-Installer и (после установки соответствующего пути) работает с "vsagrant ssh":

http://sourceforge.net/projects/opensshwindows/?source=directory

2 голосов
/ 23 ноября 2016

Я делал, как предложено выше, но менял переменную среды в командной строке только с помощью PATH =% PATH%; "C: \ Program Files \ git \ usr \ bin"

Это не сработало. Но когда я изменил переменную Environment через Windows Settings, а затем запустил новую командную строку, она сработала в первый раз!

2 голосов
/ 15 января 2013

Теперь у меня есть намного лучшее решение, которое позволяет безболезненное обновление Vagrant. Он основан на исправленном файле.

Первая строка vagrantfile должна быть:

load "vagrantfile_ssh" if Vagrant::Util::Platform.windows?

И пропатченный файл vagrantfile_ssh (первоначально названный ssh.rb ) должен существовать в том же каталоге, что и vagrantfile . Это одновременно элегантно и функционально.

Загрузите исправленный vagrantfile_ssh .

...