Vagrant hatası nasıl düzeltilir: `private_key_path` dosyası bulunmalı:

Sanal geliştirme ortamları oluşturmak için PuPHPet 'i kullanıyorum.

Dün yeni bir kutu için bir config dosyası oluşturdum. vagrant up komutunu kullanarak döndürmeyi denediğimde aşağıdaki hata iletisini alıyorum:

C:\xx>vagrant up

Bringing machine 'default' up with 'virtualbox' provider... There are errors in the configuration of this machine. Please fix the following errors and try again:

SSH: * private_key_path file must exist: P://.vagrant.d/insecure_private_key

Bu soruya rastladım ve insecure_private_key anahtarını kukladan taşıdım \ files \ dot \ ssh Vagrantfile ile aynı dizine. Ancak bu aynı hatayı veriyor.

Ayrıca hata mesajında ​​verilen dizinle kafam karıştı;

p: //.vagrant.d/insecure_private_key

'P' sürücüsü neden belirtiliyor?

Vagrant dosyamı burada bulabilirsiniz.

Bu hatayı çözmek için herhangi bir tavsiye için teşekkür ederiz.

4
Söz konusu güncellendi.
katma yazar Sid, kaynak
Vagrantfile 'inizi paylaşır mısınız?
katma yazar Vaibhav Sagar, kaynak

9 cevap

Görünüşe göre, insecure_private_key 'i silen serseri bir yok etme işlemi yapmış olabilirsiniz.

Ancak serseri dosya puphpet \ files \ dot \ ssh files 'a bakar, eğer varsa, insecure_private_key' i arar.

delete (rename) the id_rsa files in puphpet\files\dot\ssh

bu benim için düzeltti!

6
katma
silmek (yeniden adlandırmak) kuklada id_rsa dosyalarını \ files \ dot \ ssh benim için çalıştı!
katma yazar Bo Pennings, kaynak

Bu sorunu, insecure_private_key dosyasının yolunu değiştirerek, insecure_private_key dosyasının yolunu kodlayarak değiştirdim.

Böylece o gitti:

config.ssh.private_key_path = [
    customKey,
    "#{ENV['HOME']}/.vagrant.d/insecure_private_key"
]

Kime:

config.ssh.private_key_path = [
    customKey,
    "C:/Users/My.User/.vagrant.d/insecure_private_key"
]
5
katma
Sabitlendi! Teşekkürler!
katma yazar Wes Eklund, kaynak

Ayrıca rm -rf puphpet/files/dot/ssh/* kukla klasöründeki tüm dosyaları da silebilirsiniz ve vurgulu koşulu çalıştırdığınızda vm bunları yeniden oluşturmalıdır.

2
katma

Vagrant kurulumunuzda neyin yanlış olduğundan emin değilim, ancak bu satır:

vagrant_home = (ENV['VAGRANT_HOME'].to_s.split.join.length > 0) ? ENV['VAGRANT_HOME'] : "#{ENV['HOME']}/.vagrant.d"

Burada daha sonra kullanılacak olan değişkeni ayarlayan şey:

config.ssh.private_key_path = [
  customKey,
  "#{vagrant_home}/insecure_private_key"
]

Bunun olmasının nedeni, Vagrant 1.7'den itibaren sahip olduğunuz her VM için benzersiz bir özel anahtar oluşturmasıdır. Var olduğumu düşündüğüm bir hata var, Vagrant'ın daha önce benzersiz bir anahtar oluşturduğunu tespit ederse, kullanıcı tanımlı private_key_path 'i yok sayar.

PuPHPet'in burada yaptığı şey, Vagrant'ın benzersiz SSH anahtarını oluşturmasına izin vermek, ardından VM başlatıldığında ve SSH erişimine sahip olduğunda, içeri girer ve yerine geçmek için başka bir anahtar oluşturur.

Bunu değiştirmemizin nedeni, bu yeni Vagrant özelliğinin yalnızca Windows gerekli araçlara sahip olmaması nedeniyle OSX/Linux ana bilgisayarlarında çalışmasıdır.

Benim yöntemim tüm işletim sistemlerinde çalışıyor, çünkü VM’de SSH anahtar oluşturma özelliğini kullanıyor.

Bütün bunlar, sorunuzla yarı ilişkilidir, ancak cevap, eğer bu ortam değişkenleri tanımlanmadıysa, Vagrant kurulumunuzda bir sorun var.

1
katma
Bilgi için teşekkürler. Vagrant versiyonumu yükselttim ama boşuna.
katma yazar Sid, kaynak

Vagrant kurulumunuzda neyin yanlış olduğundan emin değilim, ancak bu satır:

vagrant_home = (ENV['VAGRANT_HOME'].to_s.split.join.length > 0) ? ENV['VAGRANT_HOME'] : "#{ENV['HOME']}/.vagrant.d"

Burada daha sonra kullanılacak olan değişkeni ayarlayan şey:

config.ssh.private_key_path = [
  customKey,
  "#{vagrant_home}/insecure_private_key"
]

Bunun olmasının nedeni, Vagrant 1.7'den itibaren sahip olduğunuz her VM için benzersiz bir özel anahtar oluşturmasıdır. Var olduğumu düşündüğüm bir hata var, Vagrant'ın daha önce benzersiz bir anahtar oluşturduğunu tespit ederse, kullanıcı tanımlı private_key_path 'i yok sayar.

PuPHPet'in burada yaptığı şey, Vagrant'ın benzersiz SSH anahtarını oluşturmasına izin vermek, ardından VM başlatıldığında ve SSH erişimine sahip olduğunda, içeri girer ve yerine geçmek için başka bir anahtar oluşturur.

Bunu değiştirmemizin nedeni, bu yeni Vagrant özelliğinin yalnızca Windows gerekli araçlara sahip olmaması nedeniyle OSX/Linux ana bilgisayarlarında çalışmasıdır.

Benim yöntemim tüm işletim sistemlerinde çalışıyor, çünkü VM’de SSH anahtar oluşturma özelliğini kullanıyor.

Bütün bunlar, sorunuzla yarı ilişkilidir, ancak cevap, eğer bu ortam değişkenleri tanımlanmadıysa, Vagrant kurulumunuzda bir sorun var.

1
katma
Bilgi için teşekkürler. Vagrant versiyonumu yükselttim ama boşuna.
katma yazar Sid, kaynak

Kukla yapılandırmanızı takım arkadaşlarınızla paylaşırken, private_key_path kodunu kabul etmek, kabul edilen cevaplara göre önerilmez.

Ana bilgisayarım windows'dur, bu nedenle /.vagrant.d klasörümün bulunduğu yerden VAGRANT_HOME yeni bir ortam değişkeni% USERPROFILE% değeriyle ekledim. Bu değişkeni eklediğinizde, sadece açık olan komut istemlerini kapattığınızdan emin olun, böylece değişken uygulanır.

Bu yardımcı olur umarım

1
katma

Kukla yapılandırmanızı takım arkadaşlarınızla paylaşırken, private_key_path kodunu kabul etmek, kabul edilen cevaplara göre önerilmez.

Ana bilgisayarım windows'dur, bu nedenle /.vagrant.d klasörümün bulunduğu yerden VAGRANT_HOME yeni bir ortam değişkeni% USERPROFILE% değeriyle ekledim. Bu değişkeni eklediğinizde, sadece açık olan komut istemlerini kapattığınızdan emin olun, böylece değişken uygulanır.

Bu yardımcı olur umarım

1
katma

Adding to PunctuationMark's answer you can also set the VAGRANT_HOME environment variable in your Vagrantfile: ENV['VAGRANT_HOME'] = ENV['USERPROFILE']

0
katma

Adding to PunctuationMark's answer you can also set the VAGRANT_HOME environment variable in your Vagrantfile: ENV['VAGRANT_HOME'] = ENV['USERPROFILE']

0
katma
Windows
Windows
729 Katılımcıların

Windows ile ilgili tüm sorunların çözümüne yanıt arandığı ve paylaşımların yapıldığı bir gruptur. @SerCiTV @Tekpay @Apktanitim kanal/grupların uzantısıdır. https://t.me/joinchat/H1pwvUwqv4etCBtv9Oi_qQ