Как использовать пересылку агента ssh с "бродячим ssh"?

Вместо того, чтобы создавать новую пару ключей SSH на брандмауэре, я хотел бы повторно использовать пару ключей, которые у меня есть на моей главной машине, используя agent пересылка. Я попытался установить config.ssh.forward_agent в TRUE в Vagrantfile, затем перезагрузил виртуальную машину и попытался использовать:

vagrant ssh -- -A

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

Ответ 2

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

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

Ответ 3

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

Ответ 4

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

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

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

Ответ 5

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

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

Ответ 6

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

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

Ответ 7

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

config.vm.network "forwarded_port", guest: 22, host: 2333, host_ip: "0.0.0.0"

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

Ответ 8

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

eval `ssh-agent`

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