Ответ 1
Добавьте его в файл Vagrantfile
Vagrant::Config.run do |config|
# stuff
config.ssh.forward_agent = true
end
Вместо того, чтобы создавать новую пару ключей SSH на брандмауэре, я хотел бы повторно использовать пару ключей, которые у меня есть на моей главной машине, используя agent пересылка. Я попытался установить config.ssh.forward_agent в TRUE в Vagrantfile, затем перезагрузил виртуальную машину и попытался использовать:
vagrant ssh -- -A
... но я все еще получаю запрос на получение пароля, когда я пытаюсь выполнить проверку git. Любая идея, что мне не хватает?
Добавьте его в файл Vagrantfile
Vagrant::Config.run do |config|
# stuff
config.ssh.forward_agent = true
end
Я использую бродягу 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-add -L
, если он не указан, добавьте его с помощью ssh-add ~/.ssh/id_rsa
~/.ssh/authorized_keys
на Vagrant VM. Вы можете сделать это с помощью копирования и вставки или с помощью такого инструмента, как ssh-copy-idВ дополнение к добавлению "config.ssh.forward_agent = true" в бродячий файл убедитесь, что хост-компьютер настроен для перенаправления агентов. Для этого Github предоставляет хорошее руководство. (Проверьте раздел устранения неполадок).
Я работал с вышеупомянутыми ответами в 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
Если вы находитесь в 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
Когда мы недавно опробовали плагин vagrant-aws
с Vagrant 1.1.5, у нас возникла проблема с отправкой агента SSH. Оказалось, что Вагрант заставлял IdentitiesOnly=yes
без возможности изменить его на no
. Это вынудило Vagrant смотреть только на закрытый ключ, который мы указали в Vagrantfile
для поставщика AWS.
Я написал наш опыт в сообщении в блоге. В какой-то момент он может превратиться в запрос на тягу.
Реальная проблема заключается в том, что 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) будет работать отлично. Поблагодарите меня, просто позвоните мне Лейфэн!
Убедитесь, что виртуальная машина не запускает собственный агент SSH. У меня была эта строка в ~/.profile
eval `ssh-agent`
После его удаления работала пересылка агента SSH.