Vagrant VM'lerde SSH Temelleri


23

Aşağıdaki şartlara sahip bir serseri makine (Ubuntu 12.04) inşa ediyorum:

  • Sudo ayrıcalıklarına sahip bir kullanıcıya Vagrant üzerinden SSH erişimi.

ssh-keygenAna bilgisayarda genel / özel anahtarlar (aracılığıyla ) oluşturdum ve genel anahtarı konukdaki authorized_keysdosyaya taşıdım . Ve şifresiz bir SSH denedim.

vagrant sshParola etkinleştirilmiş SSH tuşları ile yazdığım birkaç şey var :

  • Ana makinede ana anahtarımı SSH'ye Konuk VM'ye yazmak zorundayım.
  • Her doğru şifreyi yazdığımda kabul edilmez.

Hangi sonuçta aşağıdaki hata iletisini alıyorum:

SSH authentication failed! This is typically caused by the public/private
keypair for the SSH user not being properly set on the guest VM. Please
verify that the guest VM is setup with the proper public key, and that
the private key path for Vagrant is setup properly as well.

Sonra şifre-az ssh denedim.

vagrant ssh
vagrant@127.0.0.1's password: 

??

Asla bir serseri kullanıcı kurmadım! user@hostnameAyarladığım gibi olmalı ve VM'yi VirtualBox'da başlattığımda işleri doğrulayabiliyor.

Özel ssh anahtarlarının serseriyle düzgün çalışmasını nasıl sağlayabilirim? Ev sahibinde ne yapmalı, konuk ne yapmalı?

Güncelleştirme

VirtualBox'ta VM yayında ancak sorunlara ek olarak vagrant konsolundan aşağıdaki komutlardan hiçbirini yapamıyorum vagrant ssh:

vagrant up vagrant halt

Çalışan tek vagrant komutu vagrant suspend. Kullandığımda makineyi gerçekten durdurabilirim vagrant halt. İşte çıktı:

$ vagrant halt
[default] Attempting graceful shutdown of VM...
SSH authentication failed! This is typically caused by the public/private
keypair for the SSH user not being properly set on the guest VM. Please
verify that the guest VM is setup with the proper public key, and that
the private key path for Vagrant is setup properly as well.

Yanıtlar:


21

Bu konuya gelen herkes için bu çözümü ekliyorum:

İlk önce bu makineyi ana makinede açın:

$ sudo vim ~/.vagrant.d/boxes/<yourbox>/include/_Vagrantfile

config.ssh.private_key_pathÖzel anahtar dosyanıza ayarlandığını doğrulayın . Güncelleme değilse

varsayılan pwd serseri serseri kutusuna

$ vagrant ssh (default pwd = ‘vagrant’]

Kutuda bir kez:

vagrant@lucid64:~$ sudo visudo -f .ssh/authorized_keys

Genel anahtarınızı bu dosyaya ekleyin ve dosyayı kaydedin ve kutudan çıkın.

vagrant@lucid64:~$ exit

Yerel makineye geri dön

$ vagrant halt
$ vagrant up

Bu benim için çalıştı


Bunun için teşekkür ederim - acaba kullanıcı olarak farklı bir kutuya ssh koymak vagrantve pub / priv anahtar çiftini kullanmak mümkün mü? Ayrıca size Vagrantfile istenen özel ssh anahtarı yolunu ayarlayabilirsiniz şöyle ?
Rhodee

2
'İnclude' klasörünü bulamıyorum. Sadece klasör 0, sonra sanal kutu, sonra 4 dosya - box.ovf, box-disk1.vmdk, metadata.json, Vagranfile buluyorum. Ne yapılacağı hakkında bir fikrin var mı?
Darius.V

3

SSH kilit sorunlarından kaynaklanmadığı halde aynı sorunu yaşadım. Makineyi çalıştırırken, Virtualbox çalıştı ve konuğu para cezasına çarptırdı. Makineye SSH'yi kendim koydum ve vagrant sshbenden bir şifre talep etmeme rağmen çalıştım. Giriş yaptım ve konuyu /var/log/auth.log adresinde misafir buldum:

Feb 13 10:14:34 spaaza-dev sshd[1468]: Accepted password for vagrant from 192.168.50.1 port 61816 ssh2
Feb 13 10:14:34 spaaza-dev sshd[1468]: pam_unix(sshd:session): session opened for user vagrant by (uid=0)
Feb 13 10:14:34 spaaza-dev sshd[1636]: Received disconnect from 192.168.50.1: 11: disconnected by user
Feb 13 10:14:34 spaaza-dev sshd[1468]: pam_unix(sshd:session): session closed for user vagrant
Feb 13 10:16:44 spaaza-dev sshd[1764]: Authentication refused: bad ownership or modes for directory /home/vagrant

/ Home / vagrant için izinlere bakmaya gittim:

drwxrwxrwx  6 vagrant vagrant 4096 Feb 13 10:15 vagrant

İyi değil, yaptığım başka bir şey yanlışlıkla / home / vagrant dir. Aşağıdaki sorun giderildi:

# chmod 755 vagrant

drwxr-xr-x  6 vagrant vagrant 4096 Feb 13 10:15 vagrant

Ondan sonra makineyi kapattım, tekrar başlattım ve serseri işini iyi yaptı. :-)


İyi bahşiş. Ayrıca yapmak zorunda kaldımchmod -R 755 /home/vagrant/.ssh
WISBucky

2

Serseri güvensiz ortak anahtarını.ssh/authorized_keys konuk kutusuna dosyaya kopyalamayı deneyin .

Umarım bu ssh sorununuzu çözer.

Güvenli hale getirmek istiyorsanız, daha önce kendi .ssh / id_rsa.pub dosyasını yukarıda belirtilen dosyaya kopyalayarak yapabilirsiniz. Ve ayar

config.ssh.private_key_path = '~ / .ssh / id_rsa'

Vagrantfile’inde.



2

Ben de benzer sorunlar yaşadım. Sonunda bunu çözdüm:

  • Vagrant ve Virtualbox’ın güncel olduğundan emin olmak
  • vagrant-vbguestEklentiyi yükleyerek VirtualBox Konuk Eklemelerinin güncel olduğundan emin olmak :GitHub RubyGems

    vagrant plugin install vagrant-vbguest
    

0

Mac OS High Sierra'daki sorunu çözmek için aşağıdaki adımları izleyin: -

  1. Vagrant 5.X Sürümü kullanıyorum
  2. her şeyden önce sanal kutuyu indirin ve yüklemeyin.
  3. Sistem Tercihi -> gizliliğine gidin ve Amerika tarafından indirilmesine izin ver seçeneğini tıklayın.
  4. Yukarıdaki değişiklikleri kilitle ve sanal kutuyu yükle.
  5. Sanal kutunuz için yükleme işlemini tamamladı mesajı alacaksınız.
  6. Şimdi uçbirim türüne gidin - provision
  7. Eğer varsa ve sizin için sanal kutuyu indirdiyseniz, scriptleri çalıştırmaya başlayacaktır. 8. 'Tamamlandı' mesajını alacaksınız.

  8. Sanal kutunun doğru yüklendiğinden emin olduktan sonra sadece vagrant komutunu çalıştırın. Eğer pkg ile birlikte gelen betiği çalıştırarak kurulumdaki sanal kutuyu kaldırın ve yeniden yüklemeyi deneyin.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.