it-swarm.com.ru

Как использовать переадресацию агента ssh с "vagrant ssh"?

Вместо того, чтобы создавать новую пару ключей SSH на блуждающем ящике, я хотел бы повторно использовать пару ключей, которую я имею на своем хост-компьютере, используя переадресация агента . Я попытался установить config.ssh.forward_agent в значение ИСТИНА в Vagrantfile, затем перезагрузил виртуальную машину и попытался использовать:

vagrant ssh -- -A

... но я все еще получаю запрос на ввод пароля при попытке сделать git checkout. Есть идеи, что мне не хватает?

96
Matt V.

Я использую бродягу 2 на OS X Mountain Lion.

Vagrant.configure("2") do |config|
  config.ssh.private_key_path = "~/.ssh/id_rsa"
  config.ssh.forward_agent = true
end
  1. config.ssh.private_key_path ваш локальный закрытый ключ
  2. Ваш закрытый ключ должен быть доступен локальному ssh-агенту. Вы можете проверить с помощью ssh-add -L, если его нет в списке, добавить его с помощью ssh-add ~/.ssh/id_rsa
  3. Не забудьте добавить свой открытый ключ к ~/.ssh/authorized_keys на Vagrant VM. Вы можете сделать это копирование и вставка или используя такой инструмент, как ssh-copy-id
84
LuizSignorelli

Добавьте его в Vagrantfile

Vagrant::Config.run do |config|
   # stuff
   config.ssh.forward_agent = true
end

http://vagrantup.com/v1/docs/config/ssh/forward_agent.html

80
EnabrenTane

В дополнение к добавлению «config.ssh.forward_agent = true» в файл vagrant убедитесь, что на хост-компьютере настроена переадресация агента. Github предоставляет хорошее руководство для этого. (Проверьте раздел устранения проблем).

18
HipsterHobo

Я работал с вышеуказанными ответами на 1.4.3, но перестал работать на 1.5. Теперь мне нужно запустить ssh-add, чтобы полностью работать с 1.5.

На данный момент я добавляю следующую строку в мой скрипт ANSI . - name: Make sure ssk keys are passed to guest. local_action: command ssh-add

Я также создал Гист моей настройки: https://Gist.github.com/KyleJamesWalker/9538912

6
Kyle James Walker

Если вы работаете в Windows, SSH Forwarding в Vagrant не работает должным образом по умолчанию (из-за ошибки в net-ssh). Смотрите этот конкретный отчет об ошибке Vagrant: https://github.com/mitchellh/vagrant/issues/1735

Тем не менее, есть обходной путь! Просто скопируйте ваш локальный ключ SSH в Vagrant VM с помощью простого сценария обеспечения в вашем VagrantFile. Вот пример: https://github.com/mitchellh/vagrant/issues/1735#issuecomment-25640783

5
Tim Donohue

Реальная проблема заключается в Vagrant, использующем 127.0.0.1:2222 в качестве переадресации порта по умолчанию . Вы можете добавить один (не 2222, 2222 уже занят по умолчанию)

config.vm.network "forwarded_port", гость: 22, хост: 2333, Host_ip: "0.0.0.0"

«0.0.0.0» - это способ получения запроса от внешнего соединения . Then Ssh -p 2333 [email protected] (измените свой собственный IP-адрес хоста, dud) Будет работать нормально. Спасибо, просто называй меня Лейфэн!

1
Leifeng

Когда мы недавно опробовали плагин vagrant-aws с Vagrant 1.1.5, мы столкнулись с проблемой переадресации агента SSH. Оказалось, что Vagrant форсирует IdentitiesOnly=yes без возможности изменить его на no. Это заставило Vagrant просматривать только закрытый ключ, который мы указали в Vagrantfile для провайдера AWS.

Я записал наш опыт в сообщение в блоге . Это может превратиться в запрос на извлечение в некоторый момент.

1
Benjamin Oakes

В Windows проблема заключается в том, что Vagrant не знает, как связаться с ssh-агентом git-bash. Он, однако, знает, как использовать театрализованное представление PuTTY. Итак, пока Pageant работает и загружает ваш SSH-ключ, и пока вы установили config.ssh.forward_agent, это должно работать.

Смотрите этот комментарий для деталей.

Если вы используете Pageant, то обходной путь обновления Vagrantfile для копирования ключей SSH в Windows больше не нужен.

0
Josh Kelley

Убедитесь, что VM не запускает свой собственный агент SSH. У меня была эта строка в моем ~/.profile

eval `ssh-agent`

После его удаления переадресация агента SSH сработала.

0
Fabian Schmengler