Kegagalan otentikasi ssh Vagrant


147

Masalah dengan otentikasi ssh:

==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
    default: Adapter 2: bridged
==> default: Forwarding ports...
    default: 22 => 2222 (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
    default: Error: Connection timeout. Retrying...
    default: Error: Connection timeout. Retrying...
    default: Error: Connection timeout. Retrying...
    default: Error: Connection timeout. Retrying...
    default: Error: Authentication failure. Retrying...
    default: Error: Authentication failure. Retrying...
    default: Error: Authentication failure. Retrying...
    default: Error: Authentication failure. Retrying...
    default: Error: Authentication failure. Retrying...

Saya dapat Ctrl+Ckeluar dari loop otentikasi dan kemudian berhasil ssh in secara manual.

Saya melakukan langkah-langkah berikut di kotak tamu:

  • Diaktifkan Remote Loginuntuk All Users.

  • Membuat ~/.sshdirektori dengan 0700izin.

  • Membuat ~/.ssh/authorized_keysfile dengan 0600izin.

  • Menempelkan kunci publik ini ke~/.ssh/authorized_keys

Saya juga mencoba menggunakan jaringan pribadi (hanya host) alih-alih jaringan publik (dijembatani), menggunakan baris ini di Vagrantfile:

config.vm.network "private_network", ip: "172.16.177.7"

Saya mendapatkan output yang sama (kecuali Adapter 2: hostonly) tetapi kemudian tidak dapat melakukan ssh secara manual.

Saya juga mencoba config.vm.network "private_network", ip: "10.0.0.100".

Saya juga mencoba pengaturan config.ssh.passworddi Vagrantfile. Ini menghasilkan SSH auth method: passwordtetapi masih tidak mengotentikasi.

Dan saya juga mencoba membangun kembali kotak itu dan memeriksa ulang semua yang di atas.

Sepertinya orang lain telah sukses dengan konfigurasi ini , jadi pasti ada sesuatu yang saya lakukan salah.

Saya menemukan utas ini dan mengaktifkan GUI, tetapi itu tidak membantu.

Jawaban:


1

Pastikan antarmuka jaringan pertama Anda adalah NAT. Antarmuka jaringan kedua lainnya dapat berupa apa pun yang Anda inginkan saat Anda membuat kotak. Jangan lupa pengguna Vagrant, seperti yang dibahas di utas Google.

Semoga berhasil.


172

Untuk informasi umum: secara default untuk ssh-connect Anda cukup menggunakan

pengguna: vagrantkata sandi:vagrant

https://www.vagrantup.com/docs/boxes/base.html#quot-vagrant-quot-user

Pertama, coba: untuk melihat apa yang insecure_private_keyada dalam konfigurasi mesin Anda

$ vagrant ssh-config

Contoh:

$ vagrant ssh-config
Host default
  HostName 127.0.0.1
  User vagrant
  Port 2222
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile C:/Users/konst/.vagrant.d/insecure_private_key
  IdentitiesOnly yes
  LogLevel FATAL

http://docs.vagrantup.com/v2/cli/ssh_config.html

Kedua, lakukan: Ubah konten file insecure_private_keydengan konten kunci pribadi sistem pribadi Anda

Atau gunakan: Tambahkan ke Vagrantfile:

Vagrant.configure("2") do |config|
  config.ssh.private_key_path = "~/.ssh/id_rsa"
  config.ssh.forward_agent = true
end
  1. config.ssh.private_key_path adalah kunci pribadi lokal Anda
  2. Kunci pribadi Anda harus tersedia untuk agen ssh-lokal. Anda bisa memeriksanya ssh-add -L. Jika tidak terdaftar, tambahkan denganssh-add ~/.ssh/id_rsa
  3. Jangan lupa untuk menambahkan kunci publik Anda ~/.ssh/authorized_keysdi VM Vagrant. Anda dapat melakukannya dengan menyalin dan menempel atau menggunakan alat seperti ssh-copy-id (pengguna: rootkata sandi: vagrantport: 2222)ssh-copy-id '-p 2222 root@127.0.0.1'

Jika masih tidak berhasil coba ini:

  1. Hapus insecure_private_keyfile daric:\Users\USERNAME\.vagrant.d\insecure_private_key

  2. Jalankan vagrant up(gelandangan akan menghasilkan insecure_private_keyfile baru )

Dalam kasus lain, cukup setel forward_agent di Vagrantfile :

Vagrant::Config.run do |config|
   config.ssh.forward_agent = true
end

Berguna:

Konfigurasi git mungkin dengan git-scm.com

Setelah mengatur program ini dan membuat kunci pribadi sistem pribadi akan berada di jalur profil Anda:c:\users\USERNAME\.ssh\id_rsa.pub

PS: Akhirnya - sarankan Anda melihat Ubuntu pada Windows 10


4
dalam kasus saya itu masalah karena config.ssh.private_key_path = "~/.ssh/id_rsa"harus menghapus baris ini untuk membuat pekerjaan penyediaan
holms

Semua ini berhasil tetapi saya juga harus menghapus entri saya di host yang dikenal. Saya mengalami masalah saat memindahkan lokasi dan masuk.
Pumphouse

@shilovk +1 Terima kasih, terima kasih, terima kasih banyak. "Kedua, lakukan" berhasil. Sekali lagi, terima kasih banyak kawan.
whitesiroi

Yang satu ini menunjuk saya ke arah yang benar, dalam kasus saya yang harus saya lakukan adalah menghapus file .vagrant / mesin / default / virtualbox / private_key dan setelah menjalankan gelandangan itu diganti file dengan yang benar - saya akan membuat cadangan mengajukan untuk berjaga
andrux

Langkah pertama dan paling penting adalah memeriksa pengaturan BIOS Anda, pastikan Virtualisasi diaktifkan.
Bahman.A

83

Tidak satu pun di atas bekerja untuk saya. Entah bagaimana kotak memiliki kunci publik yang salah ditambahkan dalam file authorised_keys pengguna gelandangan .

Jika Anda masih dapat ssh pada kotak dengan kata sandi gelandangan (kata sandi adalah gelandangan), yaitu

ssh vagrant@localhost -p 2222

kemudian salin konten kunci publik dari https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub ke file authorised_keys dengan perintah berikut

echo "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ== vagrant insecure public key" > .ssh/authorized_keys

Setelah selesai keluar dari VM dan coba gelandangan ssh lagi. Itu seharusnya bekerja sekarang.


4
dijalankan vagrant reloadsetelah memperbarui file yang diotorisasi. Vagrant akan secara otomatis mendeteksi kunci tidak aman dan membuat ulang untuk Anda. Harus bekerja sesudahnya.
ProfileTwist

47

Jika Anda mengalami masalah ini di gelandangan 1.8.5, maka periksa utas ini di github:

https://github.com/mitchellh/vagrant/issues/7610

Ini pada dasarnya disebabkan oleh masalah izin, solusinya adil

vagrant ssh 
password: vagrant 
chmod 0600 ~/.ssh/authorized_keys
exit

kemudian

vagrant reload 

FYI: masalah ini hanya mempengaruhi CentOS, Ubuntu berfungsi dengan baik.


Katakanlah saya punya 5 mesin untuk satu file gelandangan. Setiap kali saya jalankan kembali saya harus melakukannya untuk setiap mesin. Saya ada memperbaiki ini secara permanen untuk diberikan pengaturan gelandangan menggunakan centos?
Pol

Baru saja meng-upgrade vagrant ke versi 1.8.6 gunakan untuk memiliki 1.8.5 di mana bug ada
Pol

42

Jalankan perintah berikut di mesin tamu / VM:

wget https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub -O ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
chown -R vagrant:vagrant ~/.ssh

Lalu lakukan gelandangan berhenti. Ini akan menghapus dan membuat kembali kunci pribadi Anda.

(Langkah-langkah ini menganggap Anda telah membuat atau sudah memiliki direktori ~ / .ssh / dan ~ / .ssh / official_keys di bawah folder home Anda.)


26

Dalam pengalaman saya, ini telah menjadi masalah yang sering terjadi dengan mesin gelandangan baru. Sejauh ini cara termudah untuk menyelesaikannya, alih-alih mengubah konfigurasi itu sendiri, telah membuat kunci ssh yang diperlukan secara manual pada klien, kemudian menggunakan kunci pribadi pada host.

  1. Masuk ke mesin gelandangan:, vagrant sshgunakan kata sandi standar vagrant.
  2. Buat kunci ssh: misalnya, ssh-keygen -t rsa -b 4096 -C "vagrant"( seperti yang disarankan oleh panduan relevan GitHub ).
  3. Mengubah nama file kunci publik (oleh id_rsa.pub default), override yang lama: mv .ssh/id_rsa.pub .ssh/authorized_keys.
  4. Reload ssh layanan dalam kasus dibutuhkan: sudo service ssh reload.
  5. Salin file kunci pribadi (secara default id_rsa) ke mesin host: misalnya, gunakan kombinasi cat dan clipboard cat .ssh/id_rsa,, cat dan salin (cara-cara yang lebih baik harus ada, pergi buat satu!).
  6. Keluar dari mesin gelandangan: logout.
  7. Temukan kunci pribadi saat ini yang digunakan oleh gelandangan dengan melihat konfigurasinya: vagrant ssh-config(lihat misalnya ÌdentityFile "/[...[/private_key".
  8. Ganti kunci pribadi saat ini dengan yang Anda buat di mesin host: misalnya, nano /[...]/private_keydan rekatkan dari clipboard, jika semuanya gagal. ( Catatan , bagaimanapun, bahwa jika private_key Anda tidak spesifik proyek, tetapi bersama oleh beberapa mesin gelandangan, Anda lebih baik mengkonfigurasi jalur diri Anda untuk tidak melanggar mesin sempurna kerja lainnya! Mengubah jalan adalah yang sederhana seperti menambahkan baris config.ssh.private_key_path = "path/to/private_key"ke Vagrantfile. ) Selanjutnya, jika Anda menggunakan mesin yang dihasilkan PuPHPet , Anda dapat menyimpan kunci pribadi Anda untuk file puphpet/files/dot/ssh/id_rsadan itu akan ditambahkan ke konfigurasi ssh Vagrantfile secara otomatis.
  9. Uji pengaturan: vagrant sshsekarang seharusnya berfungsi.

Jika itu masalahnya, ucapkan selamat kepada diri sendiri logout, jalankan vagrant provisionjika perlu dan teruskan tugas yang berarti.

Jika Anda masih menghadapi masalah, mungkin berguna untuk menambahkan flag verbose ke perintah ssh untuk memudahkan debugging. Anda dapat melewati itu (atau opsi lain, dalam hal ini) setelah tanda hubung ganda. Misalnya, mengetik vagrant ssh -- -v. Jangan ragu untuk menambahkan sebanyak yang Anda butuhkan, masing-masing akan memberi Anda informasi lebih lanjut.


Jawaban ini membantu saya. Hanya untuk berbagi pengalaman saya: Entah bagaimana (mungkin selama instalasi Capistrano tapi itu tidak dikonfirmasi) file otor_key saya telah dihapus di VM tamu saya. Melakukan rekreasi menggunakan langkah-langkah ini berhasil dan sekarang saya dapat ssh in tanpa password prompt. Terima kasih.
Martin Joiner

Setelah menghapus kedua kunci (publik / pribadi) dari mesin host, saya dapat mengulang dan menyelesaikan dengan proses ini
vrwired

Menggunakan Git membuat mentransfer konten file itu lebih cepat.
lloan

1
ini bekerja untuk saya setelah hal lain yang saya coba, gagal .. terima kasih banyak!
Nikolas

Ini berhasil untuk saya. Satu-satunya hal yang saya lakukan berbeda adalah menggunakan ssh vagrant@10.0.0.0 -p 22 (password: vagrant)untuk masuk ke VM karena vagrant sshtidak berfungsi untuk saya. 10.0.0.0adalah alamat ip pribadi yang saya atur di vagrantfile.
turrican_34

11

Ini juga dapat terjadi jika Anda mencoba memaksa VM Anda untuk menggunakan pengguna root secara default untuk SSH ....

Misalnya, konfigurasi seperti di Vagrantfile Anda dapat menyebabkan kegagalan ini:

config.ssh.username = 'root'
config.ssh.password = 'vagrant'
config.ssh.insert_key = 'true'

Solusi: Komentari kalimat itu dan coba lagi!


2
bagi saya hanya pengaturan config.ssh.username = "gelandangan" dan config.ssh.password = "gelandangan" melakukan trik
psychok7

8

Masalah saya mendapatkan kesalahan otentikasi ssh, pada kotak yang saya berikan. Dokumen asli berfungsi dengan baik.

Masalahnya bagi saya adalah saya kehilangan kunci pribadi .vagrant/machines/default/virtualbox/private_key. Saya menyalin kunci pribadi dari lokasi relatif yang sama dari kotak asli dan Viola!


Saya akan menambahkan, bahwa sebagai pengembang yang baik, kami memeriksa .vagrantfile ke git ... dan dengan demikian, cepat git checkoutfile tersebut menyelamatkan hari!
Ian Vaughan

8

Saya telah menemukan cara mengatasi kekacauan dengan tombol pada Win 8.2 di mana saya tidak berhasil dengan salah satu metode yang disebutkan di sini. Mungkin menarik bahwa kombinasi yang persis sama dari VirtualBox, Vagrant, dan kotak dijalankan pada Win 7 Ultimate tanpa masalah.

Saya beralih ke otentikasi kata sandi dengan menambahkan perintah berikut di Vagrantfile:

config.ssh.password = "vagrant"
config.ssh.insert_key = false

Perhatikan bahwa saya tidak yakin ini satu-satunya perubahan yang diperlukan karena saya sudah melakukannya:

  1. Saya membuat pasangan kunci RSA baru dan mengubah file berwenang_keys sesuai (semua di mesin virtual, lihat saran di atas dan di tempat lain)

  2. Saya menyalin kunci pribadi ke direktori yang sama tempat Vagrantfile tinggal dan menambahkan

     config.ssh.private_key_path = "./id_rsa"
    

Tetapi saya percaya bahwa perubahan ini tidak relevan. Saya menghabiskan banyak waktu untuk mencoba, jadi saya tidak mengubah konfigurasi kerja dengan alasan yang jelas :)


5

Tidak dapat menjalankan gelandangan karena macet dan waktu habis?

Baru-baru ini saya memiliki "insiden air dalam laptop" dan harus bermigrasi ke yang baru (menggunakan MAC).

Saya berhasil menjalankan semua proyek saya dan berjalan di samping satu proyek, yang menggunakan gelandangan.

$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
    default: Adapter 2: hostonly
==> default: Forwarding ports...
    default: 8000 (guest) => 8877 (host) (adapter 1)
    default: 8001 (guest) => 8878 (host) (adapter 1)
    default: 8080 (guest) => 7777 (host) (adapter 1)
    default: 5432 (guest) => 2345 (host) (adapter 1)
    default: 5000 (guest) => 8855 (host) (adapter 1)
    default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
    default: Warning: Authentication failure. Retrying...
    default: Warning: Authentication failure. Retrying...
    default: Warning: Authentication failure. Retrying...

Itu tidak bisa mengotentikasi, mencoba lagi dan lagi dan akhirnya menyerah.

** Ini adalah bagaimana saya mendapatkannya kembali dalam 3 langkah: **

1 - Temukan IdentityFile yang digunakan oleh gelandangan: $ vagrant ssh-config

Host default
  HostName 127.0.0.1
  User vagrant
  Port 2222
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile /Users/ned/.vagrant.d/insecure_private_key
  IdentitiesOnly yes
  LogLevel FATAL

2 - Periksa kunci publik di IdentityFile: $ ssh-keygen -y -f /Users/<user-name>/.vagrant.d/insecure_private_key Ganti '<user-name>'dengan pengguna Anda. Ini akan terlihat seperti ini:

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAA...9gE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ==

3 - Masuk ke mesin gelandangan dengan kata sandi "gelandangan": $ ssh -p 2222 -o UserKnownHostsFile=/dev/null vagrant@127.0.0.1

The authenticity of host '[127.0.0.1]:2222 ([127.0.0.1]:2222)' can't be established.
RSA key fingerprint is dc:48:73:c3:18:e4:9d:34:a2:7d:4b:20:6a:e7:3d:3e.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[127.0.0.1]:2222' (RSA) to the list of known hosts.
vagrant@127.0.0.1's password: vagrant
Welcome to Ubuntu 16.04.1 LTS (GNU/Linux 4.4.0-31-generic x86_64)
...

4 - Tambahkan kunci publik ke file otor_keys. $echo "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAA...9gE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ==" > /home/vagrant/.ssh/authorized_keys ssh-rsa

5 - Keluar (crtl + d) dan hentikan wadah gelandangan dan bawa kembali. $ vagrant halt $vagrant up

Semoga Anda akan memiliki tangan Anda di udara sekarang ...

Saya mendapatkan ini, dengan sedikit perubahan, dari artikel Ned Batchelders - Ned Anda adalah juara !!


Anda adalah seorang jenius, atau Ned Batchelders. Either way, itu memperbaiki masalah saya!
Adsy2010

4

bagi saya, ini diselesaikan dengan mengubah izin pada folder .ssh di directors gelrant home (yaitu "~ vagrant / .ssh"). Saya pikir saya mengacaukan izin ketika saya sedang mengatur kunci ssh untuk aplikasi saya.

Tampaknya file 'Authorized_keys' harus 'rw' hanya untuk pengguna 'gelandangan' jadi "chmod 600 berwenang_keys"; hal yang sama berlaku untuk direktori itu sendiri dan induknya:

begitu:

chmod 600 authorized_keys
chmod 700 .
chmod 700 ..

Hanya setelah saya mengembalikan semua izin ini, gelandangan ssh mulai bekerja kembali.

Saya pikir itu ada hubungannya dengan keamanan ssh. Ia menolak untuk mengenali sertifikat jika cara apa pun dapat diakses di luar pengguna saat ini, sehingga upaya gelandangan untuk masuk ditolak.


Saya kadang-kadang tidak bisa berubah, hanya menjalankan sudo chmod 600 official_keys tetapi masih tidak berubah. Saya pikir ini ada hubungannya dengan itu dibagikan di windows juga.
Darius.V

Kadang-kadang ini terjadi jika direktori berbagi, misalnya/vagrant/...
robert

1
Selain jawaban saya, saya ingin memilih jawaban ini. Di komputer saya yang lain, inilah masalah sebenarnya - pemilik salah dari direktori /home/vagrant/.ssh. Itu "root: root" tetapi harus "gelandangan: gelandangan"
Michael

4

Jika Anda menggunakan pengaturan SSH default di VagrantFile Anda dan mulai melihat kesalahan otentikasi SSH setelah mengaitkan kembali kotak VM Anda karena crash, coba ganti kunci publik di mesin vagrant Anda.

Vagrant menggantikan kunci publik yang terkait dengan pasangan kunci privat yang tidak aman pada setiap logout karena alasan keamanan. Jika Anda tidak mematikan mesin dengan benar, pasangan kunci publik / pribadi dapat tidak sinkron, menyebabkan kesalahan otentikasi SSH.

Untuk mengatasi masalah ini, cukup muat kunci privat tidak aman saat ini dan kemudian salin pasangan kunci publik ke file VM's berwenang Anda.


3

Ini mungkin jawaban terakhir dalam daftar tetapi ini bekerja untuk saya dan saya tidak menemukan jawaban ini di mana pun, saya menemukannya sendiri setelah 2 hari penelitian sehingga Anda sebaiknya mencoba ini jika tidak ada yang bekerja untuk Anda sampai sekarang.

Dalam kasus saya masalahnya berasal dari VirtualBox saya. Saya tidak tahu karena alasan apa opsi dinonaktifkan dan seharusnya diaktifkan.

masukkan deskripsi gambar di sini

Seperti yang Anda lihat pada gambar, ada beberapa masalah jaringan dengan VirtualBox saya dan apa yang harus saya lakukan untuk memperbaiki masalah ini adalah memilih mesin saya, tekan pada pengaturan, tab jaringan dan setelah itu pastikan bahwa opsi Cable Connected terpilih. Dalam kasus saya, opsi ini tidak dipilih dan saya gagal pada langkah ini:

default: SSH address: 127.0.0.1:2222
default: SSH username: vagrant
default: SSH auth method: private key

Pertama saya berpikir bahwa port sudah digunakan, setelah itu saya menginstal ulang Vagrant dan saya juga mencoba hal-hal lain tetapi tidak ada yang bekerja untuk saya.


3

Ini telah terjadi pada saya beberapa kali dan cara saya menyelesaikannya adalah:

  1. Periksa dan pastikan Vagrantfile Anda memiliki jalur kunci pribadi yang benar:

    config.ssh.private_key_path = "/home/razvan/.ssh/id_rsa"

  2. Jalankan> perintah vagrant ssh di terminal linux

  3. Pada mesin gelandangan Anda pergi ke

    cd /home/vagrant/.ssh

dan periksa apakah kunci ssh dalam file Authorized_key sama dengan yang Anda miliki di mesin lokal Anda di ~ / .ssh / id_rsa.pub. Jika tidak mengganti yang dari vagrant Anda berwenang dengan yang di mesin lokal Anda ditemukan di ~ / .ssh / id_rsa.pub.

  1. Reload Vagrant:

    isi ulang gelandangan

Semoga ini bisa membantu orang lain. Bersulang!


Saya tidak punya folder ~ / .ssh lalu apa yang harus saya lakukan ??
Ashish Karpe

@AshishKarpe membuatnya dengan 700 izin dan membuat authorized_keysfile dengan 600 izin di dalamnya.
hogan

3

1. Temukan kunci pribadi di host:

vagrant ssh-config
#

Keluaran:

Host default
  ...
  Port 2222
  ...
  IdentityFile /home/me/.vagrant.d/[...]/virtualbox/vagrant_private_key
  ...

2. Simpan jalur kunci pribadi dan nomor port dalam variabel:

Gunakan dua perintah ini dengan output dari atas:

pk="/home/me/.vagrant.d/.../virtualbox/vagrant_private_key"
port=2222
#

3. Hasilkan kunci publik dan unggah ke mesin tamu:

Salin / pasta, tidak perlu perubahan:

ssh-keygen -y -f $pk > authorized_keys
scp -P $port authorized_keys vagrant@localhost:~/.ssh/
vagrant ssh -c "chmod 600 ~/.ssh/authorized_keys"
rm authorized_keys
#

1
Saya memiliki masalah yang dijelaskan berkali-kali, biasanya setelah pengemasan dan kemudian mengembalikan kotak Vagrant. Yang berhasil bagi saya adalah menambahkan konfigurasi berikut untuk menginstruksikan Vagrant untuk memasukkan kunci publik ke dalam VM: config.ssh.username = "vagrant"; config.ssh.password = "vagrant"; config.ssh.insert_key = trueTapi kali ini konfigurasi di atas tidak melakukan apa-apa. Saya tidak benar-benar tahu mengapa, mencoba men-debug mengapa kunci tidak dimasukkan tanpa keberuntungan. Jadi saya mundur ke solusi dan voila Anda! Berhasil!
stz184

2

Solusi Mac:

  1. Menambahkan kunci id_rsa ssh lokal ke kunci pribadi gelandangan

    vi / Pengguna //.vagrant/machines/default/virtualbox/private_key

    / Pengguna //.ssh/id_rsa

  2. menyalin kunci publik / Pengguna //.ssh/id_rsa.pub pada kotak gelandangan berwenang_kunci

ssh vagrant@localhost -p 2222 (kata sandi: gelandangan) ls -la cd .ssh

  1. chmod 0600 ~/.ssh/authorized_keys

  2. vagrant reload

Masalah terpecahkan.

Terimakasih untuk


1

juga tidak bisa melampaui:

default: metode auth SSH: kunci pribadi

Ketika saya menggunakan GUI VirtualBox, ia mengatakan ada ketidakcocokan prosesor OS.

Untuk mendapatkan kemajuan yang lebih lanjut, dalam pengaturan BIOS saya harus kontra-intuitif:

Nonaktifkan: Virtualisasi

Aktifkan: VT-X

Coba matikan pengaturan ini di BIOS Anda.


1

Pertama-tama Anda harus menghapus file insecure_private_key autogenerated, kemudian membuat ulang file ini dengan mengetik

vagrant ssh-config

kemudian

vagrant halt
vagrant up

Itu harus bekerja


Saya mencoba ini tetapi masih mendapatkan kesalahan apakah ini karena saya menggunakan Ubuntu Virtual Box VM di dalam yang saya coba gelandangan?
Ashish Karpe

#vagrant up Membawa mesin 'default' dengan penyedia 'virtualbox' ... ==> default: Menghapus semua port penerusan yang diatur sebelumnya ... ==> default: Menghapus semua antarmuka jaringan yang ditetapkan sebelumnya ... ==> default: Mempersiapkan antarmuka jaringan berdasarkan konfigurasi ... default: Adaptor 1: nat ==> default: Meneruskan port ... default: 22 (tamu) => 2222 (host) (adaptor 1) ==> default: Booting VM .. . ==> default: Menunggu mesin untuk boot. Ini mungkin memerlukan beberapa menit ... standar: alamat SSH: 127.0.0.1.222 standar: SSH nama pengguna: standar gelandangan: metode auth SSH: kunci pribadi
Ashish Karpe

1

Saya menyelesaikan masalah dengan cara berikut. 1. Buat kunci SSH baru menggunakan Git Bash

$ ssh-keygen -t rsa -b 4096 -C "vagrant@localhost"
# Creates a new ssh key, using the provided email as a label
Generating public/private rsa key pair.
  1. Saat Anda diminta untuk "Masukkan file untuk menyimpan kunci," tekan Enter. Ini menerima lokasi file default.

    Masukkan file untuk menyimpan kunci (/ Pengguna /[you[/.ssh/id_rsa): [Tekan enter]

  2. Saat diminta, ketik frasa sandi yang aman. Anda dapat mengosongkan dan menekan enter jika Anda tidak memerlukan kata sandi.

    Masukkan file untuk menyimpan kunci (/ Pengguna /[you[/.ssh/id_rsa): [Tekan enter]

  3. Untuk terhubung ke Vagrant VM Anda, ketik perintah berikut

    ssh vagrant @ localhost -p 2222

Saat Anda mendapatkan pesan berikut, ketik "ya" dan tekan enter.

The authenticity of host 'github.com (192.30.252.1)' can't be established.
RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)?
  1. Sekarang untuk membuat jenis koneksi SSH: $ vagrant ssh

  2. Salin kunci publik host ke file yang diotorisasi dalam Vagrant VM. Untuk itu, buka folder “Users / [you] /. Ssh” dan salin konten dalam file id_rsa.pub di mesin host dan lewati ke file “~ / .ssh / official_keys” di Vagrant VM.

  3. Ubah izin pada folder SSH dan file otor_keys di Vagrant VM
  4. Mulai ulang gelandangan dengan: $ gelandangan ulang

0

Saya sudah memulai mesin, kemudian:

vagrant ssh-config

Saya mendapatkan yang berikut:

Host default HostName 127.0.0.1 User vagrant Port 2222 UserKnownHostsFile /dev/null StrictHostKeyChecking no PasswordAuthentication no IdentityFile /Users/my-user-name/Documents/PHP-Projects/my-php-project/puphpet/files/dot/ssh/id_rsa IdentityFile /Users/my-user-name/.vagrant.d/insecure_private_key IdentitiesOnly yes LogLevel FATAL

Lalu aku berlari

cat ~/.ssh/id_rsa > /Users/my-user-name/Documents/PHP-Projects/my-php-project/puphpet/files/dot/ssh/id_rsa

Mesin boot dari sini

  • El Capitan 10.11.1 Beta (15B38b)
  • Kotak Virtual 5.0.8 r103449
  • Vagran 1.7.4

0

Di antara semua tanggapan di sini, ada banyak hal baik untuk dicoba. Untuk kelengkapan, jika Anda

ssh vagrant@localhost -p 2222

seperti yang disarankan @Bizmate, dan gagal, pastikan Anda memilikinya

AllowUsers vagrant

di /etc/ssh/sshd_configmesin tamu / gelandangan Anda.


0

Saya menggunakan Vagrant dengan pengaturan Puphpet dari Mei 2015 dan memiliki masalah ini. Tampaknya konfigurasi yang dibuat tidak menangani perilaku Vagrant 1.7.4 (atau mungkin sedikit lebih awal?) Meregenerasi kunci ssh jika mendeteksi kunci tidak aman.

Saya menyelesaikannya dengan menambahkan berikut ini di Puphpet saya menghasilkan Vagrantfile (setup lokal) di dalam klausa "if File.file? (CustomKey)":

config.ssh.insert_key = false

Referensi berkomitmen


0

Ini semua langkah yang benar yang saya ikuti untuk memperbaiki masalah di bawah ini terjadi ketika menjalankan perintah gelran.

Inilah langkah-langkah yang saya ikuti

  1. buat folder. misal F: \ proyek
  2. Buka folder ini di git bash dan jalankan perintah ini ssh-keygen -t rsa -b 4096 -C "your_email@example.com" (masukkan alamat email yang valid)
  3. Kemudian menghasilkan pasangan kunci dalam dua file terpisah di folder proyek. mis. proyek (file kunci pribadi), project.pub (file kunci publik)
  4. Pergi ke lokasi ini C: \ Users \ acer.vagrant.d dan temukan file insecure_private_key
  5. Dapatkan cadangan file dan salin konten kunci pribadi yang baru dibuat dan rekatkan dalam file insecure_private_key. Kemudian salin insecure_private_key dan rekatkan juga di lokasi ini.
  6. Sekarang gelandangan di lokasi proyek Anda. setelah menghasilkan masalah di atas, ketik gelandangan ssh dan masuk memberi nama pengguna, kata sandi. (dalam nama pengguna dan kata sandi standar ditetapkan sebagai gelandangan)
  7. Masuk ke dalam ke lokasi ini cd /home/vagrant/.ssh dan ketik mvotorized_keysotorized_keys_bk
  8. Kemudian ketik ls -al dan ketik vi Authorized_keys untuk membuka file editor_ berwenang.
  9. Buka kunci publik yang dihasilkan dari notepad ++ (project.pub) dan salin konten Kemudian tekan i on git bash untuk mengaktifkan mode penyisipan pada vi editor dan klik kanan dan tempel. Setelah tekan melarikan diri untuk keluar dari mode insert
  10. : wq! untuk menyimpan file dan ketik ls -al
  11. Kemudian izin ditetapkan seperti di bawah ini tidak perlu mengubah drwx ------. 2 gelandangan gelandangan 4096 13 Februari 15:33. drwx ------. 4 gelandangan gelandangan 4096 13 Februari 14:04 .. -rw -------. 1 gelandangan gelandangan 743 13 Februari 14:26 resmi_keys -rw -------. 1 root root 409 13 Februari 13:57 berwenang_keys_bk -rw -------. 1 vagrant vagrant 409 2 Jan 23:09 authorized_keys_originial Kalau tidak, ketik chmod 600 otor_keys dan ketikkan perintah ini juga chown vagrant: vagrant official_keys
  12. Akhirnya jalankan gelandangan berhenti dan gelandangan lagi.

************************ INI BAIK BEKERJA BAGI SAYA ******************** ***********


0

Hanya untuk orang-orang yang telah idiot seperti saya, atau memiliki sesuatu yang aneh terjadi pada mesin gelandangan mereka. Kesalahan ini juga dapat terjadi ketika Anda mengubah izin direktori home pengguna gelandangan (sengaja atau tidak sengaja).

Anda dapat login sebagai gantinya (seperti yang dijelaskan dalam posting lain) menggunakan kata sandi ('gelandangan') dan kemudian jalankan perintah berikut untuk memperbaiki izin.

sudo chown -R vagrant:vagrant /home/vagrant

Maka Anda harus bisa masuk lagi tanpa memasukkan kata sandi.

TL; DR: Izin pada folder rumah gelandangan Anda salah.


0

Sederhana:

homestead destroy
homestead up

Edit (Tidak sesederhana pemikiran pertama):

Masalahnya adalah bahwa versi baru penggunaan homestead php7.0dan beberapa hal lainnya. Untuk menghindari kekacauan ini membuat yakin Anda mengatur verisondi Homestead.yml:

version: "0"

0

Saya memecahkan masalah ini dengan menjalankan perintah pada windows 7 CMD seperti yang diberikan di sini di sini adalah tautan posting terakhir di utas ini,

https://github.com/mitchellh/vagrant/issues/6744

Some commands that will reinitialize various network states:
Reset WINSOCK entries to installation defaults : netsh winsock reset catalog
Reset TCP/IP stack to installation defaults : netsh int ip reset reset.log
Flush DNS resolver cache : ipconfig /flushdns
Renew DNS client registration and refresh DHCP leases : ipconfig /registerdns
Flush routing table : route /f

0

Sudah memukuli kepalaku selama beberapa hari terakhir di kotak dasar yang dikemas ulang. (Mac OS X, El Capitan)

Mengikuti prosedur @Radek, saya melakukan 'vagrant ssh-config' pada kotak sumber dan mendapatkan:

...
/Users/Shared/dev/<source-box-name>/.vagrant/machines/default/virtualbox/private_key
...

Pada salinan baru, perintah itu memberi saya:

...
IdentityFile /Users/<username>/.vagrant.d/insecure_private_key
...

Jadi, saya baru saja menambahkan baris ini di salinan baru:

...
config.ssh.private_key_path = "/Users/Shared/dev/<source-box-name>/.vagrant/machines/default/virtualbox/private_key"
...

Tidak sempurna, tetapi saya bisa melanjutkan hidup saya.


0

Solusi sederhana lain, di windows, buka file Homestead / Vagrantfile dan tambahkan baris ini untuk terhubung dengan nama pengguna / kata sandi alih-alih kunci pribadi:

config.ssh.username = "vagrant"  
config.ssh.password = "vagrant"  
config.ssh.insert_key = false 

Jadi, akhirnya sebagian file akan terlihat seperti ini:

if File.exists? homesteadYamlPath then
    settings = YAML::load(File.read(homesteadYamlPath))
elsif File.exists? homesteadJsonPath then
    settings = JSON.parse(File.read(homesteadJsonPath))
end

config.ssh.username = "vagrant"  
config.ssh.password = "vagrant"  
config.ssh.insert_key = false 

Homestead.configure(config, settings)

if File.exists? afterScriptPath then
    config.vm.provision "shell", path: afterScriptPath, privileged: false
end

Semoga bantuan ini ..


0

Saya mencoba ini di mesin VM saya

ubah izin / rumah / gelandangan (lakukan chmod 700 di atasnya)

sekarang saya bisa ssh langsung ke kotak saya

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.