Daripada membuat pasangan kunci SSH baru di kotak gelandangan, saya ingin menggunakan kembali pasangan kunci yang saya miliki di mesin host saya, menggunakan penerusan agen . Saya sudah mencoba menyetel config.ssh.forward_agent ke TRUE di Vagrantfile, lalu mem-boot ulang VM, dan mencoba menggunakan:
vagrant ssh -- -A
... tapi saya masih dimintai kata sandi ketika saya mencoba melakukan git checkout. Tahu apa yang saya lewatkan?
ssh
virtualbox
forwarding
ssh-keys
vagrant
Matt V.
sumber
sumber
Jawaban:
Saya menggunakan gelandangan 2 di OS X Mountain Lion.
config.ssh.private_key_path
adalah kunci pribadi lokal Andassh-add -L
, jika tidak terdaftar menambahkannya denganssh-add ~/.ssh/id_rsa
~/.ssh/authorized_keys
Vagrant VM. Anda dapat melakukannya salin dan tempel atau menggunakan alat seperti ssh-copy-idsumber
config.ssh.private_key_path = "~/.ssh/id_rsa"
membuat gelandangan bertahanWaiting for VM to boot
.config.ssh.private_key_path = [ '~/.vagrant.d/insecure_private_key', '~/.ssh/id_rsa' ]
ssh-add -K
bekerja (sertaconfig.ssh.forward_agent = true
). Lihat jawaban iniTambahkan ke Vagrantfile
Lihat dokumennya
sumber
config.ssh.forward_agent
ke file konfigurasi mereka, jadi informasi baru apa yang disediakan jawaban ini? Bahkan tautannya sudah di pertanyaan.Selain menambahkan "config.ssh.forward_agent = true" ke file gelandangan, pastikan komputer host disiapkan untuk penerusan agen. Github menyediakan panduan yang bagus untuk ini. (Lihat bagian pemecahan masalah).
sumber
Saya telah mengerjakan ini dengan balasan di atas pada 1.4.3, tetapi berhenti mengerjakan 1.5. Sekarang saya harus menjalankan
ssh-add
untuk bekerja sepenuhnya dengan 1.5.Untuk saat ini saya menambahkan baris berikut ke skrip penyediaan yang memungkinkan.
- name: Make sure ssk keys are passed to guest. local_action: command ssh-add
Saya juga telah membuat inti dari penyiapan saya: https://gist.github.com/KyleJamesWalker/9538912
sumber
Jika Anda menggunakan Windows, Penerusan SSH di Vagrant tidak berfungsi dengan baik secara default (karena bug di net-ssh). Lihat laporan bug Vagrant khusus ini: https://github.com/mitchellh/vagrant/issues/1735
Namun, ada solusinya! Cukup salin otomatis kunci SSH lokal Anda ke Vagrant VM melalui skrip penyediaan sederhana di VagrantFile Anda. Berikut contohnya: https://github.com/mitchellh/vagrant/issues/1735#issuecomment-25640783
sumber
Saat kami baru-baru ini mencoba
vagrant-aws
plugin dengan Vagrant 1.1.5, kami mengalami masalah dengan penerusan agen SSH. Ternyata Vagrant memaksaIdentitiesOnly=yes
tanpa opsi untuk mengubahnyano
. Ini memaksa Vagrant untuk hanya melihat kunci pribadi yang kami daftarkanVagrantfile
untuk penyedia AWS.Saya menulis pengalaman kami dalam posting blog . Ini mungkin berubah menjadi permintaan tarik di beberapa titik.
sumber
Vagrant up
? Sekarang saya harus membuat mesin, masuk secara manual dan kemudian menambahkan kunci publik saya ke /home/vagrant/.ssh/authorized_keysPastikan VM tidak meluncurkan agen SSH-nya sendiri. Saya memiliki baris ini di saya
~/.profile
Setelah menghapusnya, penerusan agen SSH berfungsi.
sumber
Masalah sebenarnya adalah Vagrant menggunakan 127.0.0.1:2222 sebagai port-forward default. Anda dapat menambahkan satu (bukan 2222, 2222 sudah ditempati secara default)
config.vm.network "forwarded_port", tamu: 22, host: 2333, host_ip: "0.0.0.0"
"0.0.0.0" adalah cara menerima permintaan dari koneksi eksternal. lalu ssh -p 2333 [email protected] (ubah ke alamat ip host Anda sendiri, dud) akan berfungsi dengan baik. Terima kasih, panggil saja aku Leifeng!
sumber
Di Windows, masalahnya adalah Vagrant tidak tahu cara berkomunikasi dengan ssh-agent git-bash. Namun, ia tahu cara menggunakan Pageant PuTTY. Jadi, selama Pageant berjalan dan telah memuat kunci SSH Anda, dan selama Anda menyetel config.ssh.forward_agent, ini akan berfungsi.
Lihat komentar ini untuk detailnya.
Jika Anda menggunakan Pageant, maka solusi untuk memperbarui Vagrantfile untuk menyalin kunci SSH di Windows tidak lagi diperlukan.
sumber