[ssh] “vagrant ssh”와 함께 ssh 에이전트 전달을 사용하는 방법은 무엇입니까?

방랑자 상자에 새 SSH 키 쌍을 만드는 대신 에이전트 전달을 사용하여 호스트 컴퓨터에있는 키 쌍을 다시 사용하고 싶습니다 . Vagrantfile에서 config.ssh.forward_agent 를 TRUE로 설정 한 다음 VM을 재부팅하고 다음을 사용해 보았습니다.

vagrant ssh -- -A

…하지만 git checkout을 시도 할 때 여전히 비밀번호를 입력하라는 메시지가 표시됩니다. 내가 뭘 놓치고 있는지 아십니까?



답변

OS X Mountain Lion에서 vagrant 2를 사용하고 있습니다.

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-agent에서 개인 키를 사용할 수 있어야합니다. ssh-add -L목록에없는 경우으로 확인할 수 있습니다.ssh-add ~/.ssh/id_rsa
  3. ~/.ssh/authorized_keysVagrant VM에 공개 키를 추가하는 것을 잊지 마십시오 . 복사하여 붙여 넣기를하거나 ssh-copy-id 와 같은 도구를 사용하여 할 수 있습니다.

답변

Vagrantfile에 추가

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

문서보기


답변

vagrant 파일에 “config.ssh.forward_agent = true”를 추가하는 것 외에도 호스트 컴퓨터가 에이전트 전달을 위해 설정되어 있는지 확인하십시오. Github는 이에 대한 좋은 가이드 를 제공합니다 . (문제 해결 섹션을 확인하십시오).


답변

나는 1.4.3에서 위의 답변으로 작업했지만 1.5에서 작업을 중단했습니다. 이제 ssh-add1.5로 완전히 작동 하려면 실행 해야합니다.

지금은 ansible 프로비저닝 스크립트에 다음 줄을 추가합니다.

- name: Make sure ssk keys are passed to guest.
local_action: command ssh-add

또한 내 설정의 요점을 만들었습니다 : https://gist.github.com/KyleJamesWalker/9538912


답변

Windows를 사용하는 경우 Vagrant의 SSH 전달이 기본적으로 제대로 작동하지 않습니다 (net-ssh의 버그로 인해). 이 특정 Vagrant 버그 보고서를 참조하십시오 : https://github.com/mitchellh/vagrant/issues/1735

그러나 해결 방법이 있습니다! VagrantFile의 간단한 프로비저닝 스크립트를 통해 로컬 SSH 키를 Vagrant VM에 자동 복사하기 만하면됩니다. 예 :
https://github.com/mitchellh/vagrant/issues/1735#issuecomment-25640783


답변

최근 vagrant-awsVagrant 1.1.5 에서 플러그인을 사용해 보았을 때 SSH 에이전트 전달에 문제가 발생했습니다. 그것은 방랑은 강제 것을 밝혀 IdentitiesOnly=yes로 변경하는 옵션없이 no. 이로 인해 Vagrant Vagrantfile는 AWS 공급자에 대해 나열된 개인 키만 볼 수있었습니다 .

나는 블로그 포스트 에 우리의 경험을 썼다 . 언젠가는 풀 리퀘스트로 바뀔 수 있습니다.


답변

VM이 자체 SSH 에이전트를 시작하지 않는지 확인하십시오. 이 라인이 내~/.profile

eval `ssh-agent`

제거 후 SSH 에이전트 전달이 작동했습니다.