Khái niệm cơ bản về SSH trên máy ảo


23

Tôi đang xây dựng một cỗ máy mơ hồ (Ubuntu 12.04) với các yêu cầu sau:

  • Truy cập SSH qua Vagrant cho người dùng có quyền sudo.

Tôi đã tạo khóa chung / riêng (thông qua ssh-keygen) trên máy chủ lưu trữ và đã chuyển khóa chung sang authorized_keystệp trên máy khách. Và tôi đã thử một SSH không có mật khẩu.

Một vài điều xảy ra tôi gõ vagrant sshbằng các khóa SSH kích hoạt mật khẩu:

  • Tôi phải nhập cụm từ khóa của mình vào máy chủ để SSH vào Guest VM.
  • Mỗi lần tôi gõ đúng cụm từ khóa, nó không được chấp nhận.

Kết quả nào tôi nhận được thông báo lỗi sau:

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.

Sau đó, tôi đã thử ssh mật khẩu.

vagrant ssh
vagrant@127.0.0.1's password: 

??

Tôi không bao giờ thiết lập một người dùng mơ hồ! Nó sẽ user@hostnamegiống như tôi đã thiết lập và có thể xác nhận hoạt động khi tôi khởi động VM trong VirtualBox.

Làm thế nào để tôi có được các khóa ssh riêng để hoạt động đúng với vagrant? Làm gì với chủ nhà, làm gì cho khách?

Cập nhật

Trong VirtualBox, VM hoạt động nhưng tôi không thể thực hiện bất kỳ lệnh nào sau đây từ bảng điều khiển mơ hồ ngoài các vấn đề với vagrant ssh:

vagrant up vagrant halt

Lệnh mơ hồ duy nhất hoạt động là vagrant suspend. Khi tôi sử dụng, tôi thực sự có thể dừng máy thông qua vagrant halt. Đây là đầu ra:

$ 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.

Câu trả lời:


21

Tôi đang thêm giải pháp này cho bất kỳ ai đến với chủ đề này:

Đầu tiên mở tệp này trên máy chủ:

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

Xác minh rằng config.ssh.private_key_pathđược đặt thành tập tin khóa riêng của bạn. Nếu không cập nhật mà

ssh vào hộp vagrant với pwd mặc định

$ vagrant ssh (default pwd = ‘vagrant’]

Khi đã ở trong hộp:

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

Thêm khóa công khai của bạn vào tệp này và lưu tệp và thoát khỏi hộp

vagrant@lucid64:~$ exit

Quay lại máy cục bộ

$ vagrant halt
$ vagrant up

Điều này làm việc cho tôi


Cảm ơn vì điều này - tôi tự hỏi mặc dù điều gì có thể ssh vào một hộp vì người dùng khác vagrantvà sử dụng cặp khóa pub / private? Hơn nữa bạn có thể đặt đường dẫn đến khóa ssh riêng mong muốn từ Vagrantfile như vậy không?
rhodee

2
Tôi không thể tìm thấy thư mục 'bao gồm'. Tôi chỉ tìm thư mục 0, rồi hộp ảo, rồi 4 tệp - box.ovf, box-đĩa1.vmdk, metadata.json, Vagranfile. Bất cứ ý tưởng để làm gì sau đó?
Darius.V

3

Tôi gặp vấn đề tương tự mặc dù không phải do vấn đề chính của SSH. Khi khởi động máy, Virtualbox đã hoạt động và đưa khách lên tốt. Tôi đã có thể tự SSH vào máy và vagrant sshlàm việc mặc dù nó yêu cầu tôi nhập mật khẩu. Tôi đã đăng nhập và tìm thấy thông tin sau trong /var/log/auth.log trên máy khách:

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

Tôi đã đi vào để xem các quyền cho / home / vagrant:

drwxrwxrwx  6 vagrant vagrant 4096 Feb 13 10:15 vagrant

Không tốt, một cái gì đó khác mà tôi đang làm đã vô tình thay đổi các quyền của thư mục / home / vagrant. Sau đây đã khắc phục sự cố:

# chmod 755 vagrant

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

Sau đó tôi tắt máy, khởi động lại và mơ hồ làm tốt. :-)


Mẹo tốt. Tôi cũng phải làmchmod -R 755 /home/vagrant/.ssh
wvducky

2

Hãy thử sao chép khóa công khai không an toàn vào tệp .ssh/authorized_keysvào hộp khách.

Hy vọng điều này giải quyết vấn đề ssh của bạn.

Nếu bạn muốn làm cho nó an toàn thì bạn có thể làm như vậy bằng cách sao chép .ssh / id_rsa.pub của riêng bạn vào tệp đã nói ở trên. Và thiết lập

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

trong Vagrantfile của bạn.


2

Đối với bất cứ ai có vấn đề này. tôi phải mất nhiều năm để sửa chữa. (Tuy nhiên, việc khắc phục rất dễ dàng !!) Vì vậy, theo tài liệu của Vagrant có một mật khẩu mặc định cho người dùng 'vagrant' là 'vagrant' mà không có dấu ngoặc đơn. bạn có thể đọc thêm trên cùng trên trang web chính thức của họ http://docs.vagrantup.com/v2/boxes/base.html


2

Tôi đã có vấn đề tương tự. Cuối cùng, tôi đã giải quyết nó bằng cách:

  • Đảm bảo Vagrant và Virtualbox đều được cập nhật
  • Đảm bảo các phần bổ sung của VirtualBox được cập nhật bằng cách cài đặt vagrant-vbguestplugin :GitHub RubyGems

    vagrant plugin install vagrant-vbguest
    

0

Làm theo các bước để giải quyết sự cố trong Mac OS High Sierra: -

  1. Tôi đang sử dụng phiên bản 5.X mơ hồ
  2. trước hết hãy tải xuống hộp ảo và không cài đặt nó.
  3. Chuyển đến Tùy chọn hệ thống -> quyền riêng tư và nhấp vào cho phép tải xuống bởi Mỹ ..
  4. Khóa các thay đổi trên và cài đặt hộp ảo.
  5. Bạn sẽ nhận được thông báo cài đặt thành công cho hộp ảo của bạn.
  6. Bây giờ đi đến loại thiết bị đầu cuối vagrant up - cung cấp
  7. Nó sẽ bắt đầu chạy các kịch bản nếu bạn có bất kỳ và tải xuống hộp ảo cho bạn. 8. Bạn sẽ nhận được thông báo 'Xong'

  8. Hãy chắc chắn rằng hộp ảo được cài đặt chính xác sau đó chỉ chạy lệnh vagrant. nếu bạn gặp phải vấn đề chưa cài đặt hộp ảo bằng cách chạy chương trình gỡ cài đặt đi kèm với pkg và thử cài đặt lại.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.