ssh 키를 방랑자로 옮기고에 넣고 싶습니다 ~/.ssh
. 가장 쉬운 방법은 무엇입니까? Vagrant 파일에 다음이 있습니다.
config.vm.synced_folder "conf.d", "/svr/conf.d"
config.vm.provision :shell,
:inline => "ls -l /svr/conf.d/.ssh"
총 4 -rw-r–r– 1 개의 방랑자 1670 년 3 월 26 일 08:19 id_rsa.mediapop
config.vm.provision :shell,
:inline => "cp /svr/conf.d/.ssh/id_rsa.mediapop /home/ubuntu/.ssh/id_rsa"
config.vm.provision :shell,
:inline => "ls -l /home/ubuntu/.ssh"
총 4 -rw ——- 1 우분투 우분투 0 3 월 22 일 08:56 certified_keys -rw-r–r– 1 루트 루트 1670 3 월 26 일 08:59 id_rsa
그러나 내가 할 때 나는 vagrant ssh -c "ls -l ~/.ssh"
얻는다 :
$ vagrant ssh -c "ls -l ~/.ssh"
total 4
-rw-r--r-- 1 vagrant vagrant 409 Mar 20 04:47 authorized_keys
그래서 방랑자가 내 .ssh
디렉토리를 덮어 쓰고 있습니다.
답변
SSH 파일을 conf.d/.ssh/id_rsa.medipop
넣고 다음을 수행했습니다.
config.vm.synced_folder "conf.d", "/svr/conf.d"
config.vm.provision :shell,
:inline => "cp /svr/conf.d/.ssh/id_rsa.mediapop /home/vagrant/.ssh/id_rsa"
방랑자 사용자가 vagrant
아닌 것을 깨달았을 때 훌륭하게 작동했습니다 ubuntu
(따라서 내 ssh 키가 사라지는 이유에 대한 질문에 혼란 스럽습니다).
답변
무엇에 대한 SSH 에이전트 포워딩?
SSH 키가 먼저 로컬에서 작동하는지 확인한 다음 통과하도록 추가 config.ssh.forward_agent = true
하십시오 Vagrantfile
.
여기에 방랑자 세부 사항 : http://docs.vagrantup.com/v2/vagrantfile/ssh_settings.html
답변
다음과 같이 Ruby의 핵심 파일 모듈을 사용할 수 있습니다.
config.vm.provision "shell" do |s|
ssh_pub_key = File.readlines("#{Dir.home}/.ssh/id_rsa.pub").first.strip
s.inline = <<-SHELL
echo #{ssh_pub_key} >> /home/vagrant/.ssh/authorized_keys
echo #{ssh_pub_key} >> /root/.ssh/authorized_keys
SHELL
end
Vagrant가 기본적으로 이것을 제공하지 않는다는 것이 정말 놀랍습니다!
답변
상기 살펴보세요 방랑 쉘 제공자를 , 당신은 당신의 Vagrantfile이 추가 것입니다.
그러나 달성하려는 목표에 따라 제공된 ssh 키를 사용하여 Vagrant에 액세스하는 것이 좋습니다.
~/.ssh/config
신원 파일 줄 실행을 포함하여에 추가 할 빠른 구성 파일을 생성하려면 $ vagrant ssh-config
. 당신은 $ ssh you-vagrant-box
오히려 오히려 수 $ vagrant ssh
있습니다.
답변
개인 키와 공개 키를 모두 이동하려면 다음이 작동합니다.
config.vm.provision "shell" do |s|
ssh_prv_key = File.read("#{Dir.home}/.ssh/id_rsa")
ssh_pub_key = File.readlines("#{Dir.home}/.ssh/id_rsa.pub").first.strip
s.inline = <<-SHELL
echo Provisioning public ssh key...
[ -e /home/vagrant/.ssh/id_rsa.pub ] && rm /home/vagrant/.ssh/id_rsa.pub
touch /home/vagrant/.ssh/id_rsa.pub
echo "#{ssh_pub_key}" >> /home/vagrant/.ssh/id_rsa.pub
echo Provisioning private ssh key...
[ -e /home/vagrant/.ssh/id_rsa ] && rm /home/vagrant/.ssh/id_rsa
touch /home/vagrant/.ssh/id_rsa
echo "#{ssh_prv_key}" >> /home/vagrant/.ssh/id_rsa
echo Provisioning of ssh keys completed [Success].
SHELL
end