Tôi đã sử dụng hình ảnh Vagrant cho 13.04 từ http://cloud-images.ubfox.com/vagrant/rared/civerse/rared-server-cloudimg-i386-vagrant-disk1.box để tạo một máy ảo mới và cố gắng kết nối với nó sử dụng ssh. Tuy nhiên, SSH luôn ngắt kết nối ngay lập tức mà thậm chí không đến giai đoạn mà nó cố gắng xác thực.
Tôi đã mở VM trong GUI VirtualBox và xem tệp nhật ký SSH (auth.log). Nó có đầy đủ các dòng như thế này:
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]
Vấn đề đã được giải quyết bằng cách thực hiện các lệnh sau:
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
Tôi sẽ cho rằng những thứ này sẽ tự động chạy vào một lúc nào đó, đặc biệt là khi (a) tôi không phải tự chạy chúng khi tôi cài đặt Ubuntu từ hình ảnh ISO và (b) vì Vagrant được thiết kế sau khi bạn chạy vagrant up
bạn có thể sử dụng ngay lập tức VM mà không cần cấu hình bổ sung.
Tôi có thể cần phải tạo một số lượng lớn Máy ảo trong tương lai gần và tôi đã hy vọng rằng tôi có thể sử dụng Vagrant để làm điều đó, nhưng tôi không thể làm điều đó nếu tôi phải tự sửa SSH trên mỗi máy.
Có ai biết tại sao điều này xảy ra và những gì có thể được thực hiện để khắc phục nó? Tôi có nên báo cáo đó là một lỗi không?
test -f /etc/ssh/ssh_host_dsa_key || dpkg-reconfigure openssh-server
hoặc sử dụng ssh-keygen
để tạo các phím.
test -e /etc/ssh/ssh_host_dsa_key || dpkg-reconfigure openssh-server
trong /etc/rc.local
kịch bản.
vagrant
trên máy chủ của bạn? Làm thế nào về việc bật gỡ lỗi mơ hồ và xem những gì hạnh phúc?vagrant ssh
sử dụng khóa không an toàn của vagrant để xác thực khóa pub.