Tidak dapat melakukan ssh ke pemasangan Vagrant baru 13,04

9

Saya menggunakan gambar Vagrant untuk 13,04 dari http://cloud-images.ubuntu.com/vagrant/raring/current/raring-server-cloudimg-i386-vagrant-disk1.box untuk membuat mesin virtual baru dan mencoba menyambung ke itu menggunakan ssh. Namun, SSH selalu terputus segera, bahkan tanpa sampai ke tahap di mana ia mencoba untuk mengotentikasi.

Saya membuka VM di GUI VirtualBox dan melihat file log SSH (auth.log). Itu penuh dengan garis-garis seperti ini:

Jul 25 17:57:02 vagrant-ubuntu-raring-32 sshd[898]: error: Could not load host key: /etc/ssh/ssh_host_rsa_key
Jul 25 17:57:02 vagrant-ubuntu-raring-32 sshd[898]: error: Could not load host key: /etc/ssh/ssh_host_dsa_key
Jul 25 17:57:02 vagrant-ubuntu-raring-32 sshd[898]: error: Could not load host key: /etc/ssh/ssh_host_ecdsa_key
Jul 25 17:57:02 vagrant-ubuntu-raring-32 sshd[898]: fatal: No supported key exchange algorithms [preauth]

Masalahnya dipecahkan dengan menjalankan perintah berikut:

sudo ssh-keygen -f /etc/ssh/ssh_host_ecdsa_key -N '' -t ecdsa
sudo ssh-keygen -f /etc/ssh/ssh_host_dsa_key -N '' -t dsa
sudo ssh-keygen -f /etc/ssh/ssh_host_rsa_key -N '' -t rsa

Saya akan berasumsi bahwa ini harus berjalan secara otomatis di beberapa titik, terutama mengingat bahwa (a) saya tidak harus menjalankannya sendiri ketika saya menginstal Ubuntu dari gambar ISO, dan (b) karena Vagrant seharusnya dirancang bahwa setelah Anda menjalankan vagrant upAnda dapat langsung menggunakan VM tanpa konfigurasi tambahan.

Saya mungkin perlu membuat sejumlah besar Mesin Virtual dalam waktu dekat dan saya berharap saya bisa menggunakan Vagrant untuk melakukannya, tetapi saya tidak bisa melakukannya jika saya harus memperbaiki SSH secara manual pada masing-masing.

Adakah yang tahu mengapa ini terjadi dan apa yang bisa dilakukan untuk memperbaikinya? Haruskah saya melaporkannya sebagai bug?

Moshe Katz
sumber
Apakah Anda menginstal terbaru vagrantpada host Anda? Bagaimana dengan mengaktifkan debug gelandangan dan melihat apa yang terjadi? vagrant sshmenggunakan keypair tidak aman gelandangan untuk otentikasi kunci pub.
Terry Wang
Ya, ini adalah gelandangan terbaru. Perhatikan bahwa masalah saya bukan pasangan kunci gelandangan, itu kunci mesin SSH server tidak diatur. Jika server SSH tidak memiliki kunci mesin, tidak ada cara untuk menghubungkannya.
Moshe Katz
Saya baru saja mencoba VM 12.10 segar dan hal yang sama terjadi.
Moshe Katz
Maaf, tidak membaca pertanyaan dengan hati-hati. Saya masalah kunci host sshd bukan otentikasi kunci publik. Sepertinya selama boot pertama Ubuntu cloud image gagal menghasilkan kunci host baru (jika TIDAK ditemukan). Ini dapat dilakukan dengan test -f /etc/ssh/ssh_host_dsa_key || dpkg-reconfigure openssh-serveratau menggunakan ssh-keygenuntuk menghasilkan kunci.
Terry Wang
Harus ada test -e /etc/ssh/ssh_host_dsa_key || dpkg-reconfigure openssh-serverdalam /etc/rc.localskrip.
Terry Wang

Jawaban:

5

Ini adalah masalah kunci host SSH (TIDAK terkait dengan otentikasi kunci publik).

Sepertinya masalahnya adalah bahwa gambar ubran-ubar cloud gagal menghasilkan kunci host baru (jika tidak ada di dalamnya /etc/ssh/) selama boot pertama ( vagrant up).

Selain secara manual menghasilkan kunci host SSH yang disebutkan oleh Moshe

sudo ssh-keygen -f /etc/ssh/ssh_host_ecdsa_key -N '' -t ecdsa
sudo ssh-keygen -f /etc/ssh/ssh_host_dsa_key -N '' -t dsa
sudo ssh-keygen -f /etc/ssh/ssh_host_rsa_key -N '' -t rsa

Ini juga dapat dilakukan dengan menambahkan perintah berikut di /etc/rc.local

test -f /etc/ssh/ssh_host_dsa_key || dpkg-reconfigure openssh-server

Semoga ini bisa membantu.

Terry Wang
sumber
1
Itu solusi sementara, tetapi tidakkah kita harus melaporkannya sebagai bug di dalam gambar itu? Bukankah semua kunci sudah dipra-pregenerasi?
Radek Simko
5

Workaroud:

  • Impor alat ~ / .vagrant.d / boxes / raring / box.ovf di VirtualBox

    VBoxManage import ~/.vagrant.d/boxes/raring/box.ovf
    
  • Dapatkan Nama VM

    VBoxManage list vms
    
  • Mulai VM

    VBoxManage startvm ubuntu-cloudimg-raring-vagrant-amd64
    
  • Sertakan baris berikut di /etc/rc.local (Tentu saja di VM itu sendiri!):

    test -f /etc/ssh/ssh_host_dsa_key || dpkg-reconfigure openssh-server
    
  • Shutdown VM

    sudo halt
    
  • Hapus gambar lama

    rm ~/.vagrant.d/boxes/raring/box.ovf ~/.vagrant.d/boxes/raring/box-disk1.vmdk
    
  • Ekspor VM dalam format .ovf

    VBoxManage export ubuntu-cloudimg-raring-vagrant-amd64 --output ~/.vagrant.d/boxes/raring/box.ovf
    

Selesai :)

Juga melaporkan bug: https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1217950

S0me0ne
sumber
3

Ini tampaknya merupakan bug di kotak dasar yang lebih lama. Dalam gambar kotak dasar saat ini (dihasilkan 20 Agustus 2013), tombol tampaknya dibuat secara otomatis ketika kotak boot untuk pertama kalinya.

Moshe Katz
sumber
Saya mengalami bug ini (lagi) sekarang, dan tampaknya oleh laporan bug @ S0me0ne bahwa orang lain juga. Saya mengkonfirmasi di / etc / ssh bahwa file kunci tidak ada di sana. Ini menggunakan gambar 24 September.
malvim
Oke, mereka baru saja merilis "batch" mesin lain (mulai 28 Sep 2013) yang membuat kunci yang hilang dengan benar. Saya dapat memverifikasi itu dengan mengimpor kotak menggunakan VBoxManage. Anehnya, ketika saya menggunakan "gelandangan", file-file itu tidak ada di sana! Apakah ada perbedaan antara mengimpor langsung ke VB dan menggunakan gelandangan?
malvim