Saya ingin memindahkan kunci ssh ke gelandangan dan memasukkannya ke dalam ~/.ssh
, apa cara termudah untuk melakukan itu? Saya memiliki yang berikut di file Vagrant saya:
config.vm.synced_folder "conf.d", "/svr/conf.d"
config.vm.provision :shell,
:inline => "ls -l /svr/conf.d/.ssh"
total 4 -rw-r - r-- 1 gelandangan gelandangan 1670 26 Maret 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"
total 4 -rw ------- 1 ubuntu ubuntu 0 Mar 22 08:56 official_keys -rw-r - r-- 1 root root 1670 26 Maret 26 08:59 id_rsa
tapi kemudian ketika saya melakukannya vagrant ssh -c "ls -l ~/.ssh"
saya mendapatkan:
$ vagrant ssh -c "ls -l ~/.ssh"
total 4
-rw-r--r-- 1 vagrant vagrant 409 Mar 20 04:47 authorized_keys
Jadi gelandangan menimpa .ssh
direktori saya .
Bagaimana dengan Penerusan Agen SSH?
Pastikan kunci SSH Anda berfungsi secara lokal terlebih dahulu kemudian tambahkan
config.ssh.forward_agent = true
ke AndaVagrantfile
untuk melewatinya.Detail vagran di sini: http://docs.vagrantup.com/v2/vagrantfile/ssh_settings.html
sumber
config.ssh.private_key_path
atau melakukan sesuatu yang mengerikan seperti memiliki kunci ssh di folder proyek dengan Vagrantfile. Itu harus didistribusikan entah bagaimana dalam use case, jadi pilih iblismu!Anda dapat menggunakan modul File inti Ruby, seperti:
Saya benar-benar terkejut bahwa Vagrant tidak menyediakan ini secara default!
sumber
echo
argumen:echo "#{ssh_pub_key}" >> /home/vagrant/.ssh/authorized_keys
danecho "#{ssh_pub_key}" >> /root/.ssh/authorized_keys
. Ini juga akan berfungsi jika kunci SSH publik berisi karakter khusus (misalnya(
).Lihatlah Penyedia Kerang Vagrant , Anda akan menambahkan ini ke Vagrantfile Anda.
Namun, tergantung pada apa yang ingin Anda capai, mungkin lebih baik menggunakan kunci ssh yang disediakan untuk mengakses Vagrant.
Untuk membuat file konfigurasi cepat yang akan ditambahkan ke Anda
~/.ssh/config
, termasuk menjalankan baris file identitas$ vagrant ssh-config
. Anda kemudian bisa$ ssh you-vagrant-box
daripada$ vagrant ssh
.sumber
~/
dan/home/ubuntu
lokasinya sama? Homedir default Vagrant adalah/home/vagrant
.git_ssh_key = File.read('/svr/conf.d/.ssh/id_rsa.mediapop'); config.vm.provision :shell, :inline => "cat >>/home/vagrant/.ssh/id_rda.mediapop <<EOF #{git_ssh_key} EOF"
Anda mungkin mengalami masalah izin membaca kunci ssh.~/.ssh
menggunakan folder yang disinkronkan dancp
, tetapi sepertinya gelandangan menimpanya setelah itu.Untuk memindahkan kunci privat dan publik, yang berikut ini akan berfungsi:
sumber