ข้อมูลพื้นฐานเกี่ยวกับ SSH เกี่ยวกับ Vagrant VMs


23

ฉันกำลังสร้างเครื่องคนจรจัด (Ubuntu 12.04) ตามข้อกำหนดดังต่อไปนี้:

  • การเข้าถึง SSH ผ่าน Vagrant ให้กับผู้ใช้ที่มีสิทธิ์ sudo

ฉันได้สร้างกุญแจสาธารณะ / ส่วนตัว (ผ่านssh-keygen) บนโฮสต์และย้ายกุญแจสาธารณะไปยังauthorized_keysไฟล์ของแขก และฉันได้ลองใช้ SSH แบบไม่ต้องใช้รหัสผ่าน

มีสองสิ่งเกิดขึ้นที่ฉันพิมพ์vagrant sshด้วยคีย์ SSH ที่เปิดใช้งานรหัสผ่าน:

  • ฉันต้องพิมพ์ keyphrase บนเครื่องโฮสต์เพื่อ SSH ลงใน Guest 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.

จากนั้นฉันก็ลอง ssh โดยไม่ใช้รหัสผ่าน

vagrant ssh
vagrant@127.0.0.1's password: 

??

ฉันไม่เคยตั้งค่าผู้ใช้คนจรจัด! มันควรจะuser@hostnameเป็นตามที่ฉันได้ตั้งค่าและสามารถยืนยันการทำงานเมื่อฉันบูต VM ใน VirtualBox

ฉันจะรับคีย์ ssh ส่วนตัวให้ทำงานอย่างถูกต้องกับคนจรจัดได้อย่างไร จะทำอย่างไรกับโฮสต์สิ่งที่ต้องทำกับแขก?

ปรับปรุง

ใน VirtualBox VM นั้นใช้งานได้ แต่ฉันไม่สามารถทำคำสั่งใด ๆ ต่อไปนี้จาก Vagrant Console นอกเหนือจากปัญหาที่เกิดขึ้นกับvagrant ssh:

vagrant up vagrant halt

vagrant suspendคำสั่งเพียงคนจรจัดที่ทำงานเป็น vagrant haltเมื่อฉันใช้มันจริงผมสามารถหยุดเครื่องผ่าน นี่คือผลลัพธ์:

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

คำตอบ:


21

ฉันกำลังเพิ่มโซลูชันนี้สำหรับทุกคนที่มาที่หัวข้อนี้:

ก่อนอื่นให้เปิดไฟล์นี้บนเครื่องโฮสต์:

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

ตรวจสอบว่าconfig.ssh.private_key_pathตั้งค่าเป็นไฟล์กุญแจส่วนตัวของคุณ หากไม่อัพเดทนั้น

ssh ไปยังกล่องคนจรจัดที่มีค่าเริ่มต้น pwd

$ vagrant ssh (default pwd = ‘vagrant’]

หนึ่งครั้งในกล่อง:

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

เพิ่มกุญแจสาธารณะของคุณลงในไฟล์นี้และบันทึกไฟล์แล้วออกจากกล่อง

vagrant@lucid64:~$ exit

กลับไปที่เครื่องท้องถิ่น

$ vagrant halt
$ vagrant up

สิ่งนี้ใช้ได้สำหรับฉัน


ขอบคุณสำหรับสิ่งนี้ - ฉันสงสัยว่าจะเกิดอะไรขึ้นถ้ามันเป็นไปได้ที่จะ ssh ลงในกล่องในฐานะผู้ใช้ที่แตกต่างจากvagrantและใช้คู่คีย์ pub / priv? นอกจากนี้คุณสามารถตั้งค่าพา ธ ไปยังคีย์ ssh ส่วนตัวที่ต้องการได้จาก Vagrantfile อย่างนั้นหรือ
rhodee

2
ฉันไม่พบโฟลเดอร์ 'รวม' ฉันเพิ่งค้นหาโฟลเดอร์ 0 จากนั้น virtualbox จากนั้น 4 ไฟล์ - box.ovf, box-disk1.vmdk, metadata.json, Vagranfile ความคิดใดที่จะทำอย่างไร
Darius.V

3

ฉันมีปัญหาเดียวกันแม้ว่ามันจะไม่ได้เกิดจากประเด็นสำคัญของ SSH เมื่อเริ่มต้นเครื่อง Virtualbox ทำงานและทำให้แขกดีขึ้น ฉันสามารถ SSH เข้าไปในเครื่องด้วยตัวเองและvagrant sshทำงานได้แม้ว่ามันจะขอรหัสผ่าน ฉันเข้าสู่ระบบและพบสิ่งต่อไปนี้ใน /var/log/auth.log กับแขก:

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

ฉันเข้าไปดูการอนุญาตสำหรับ / home / คนจรจัด:

drwxrwxrwx  6 vagrant vagrant 4096 Feb 13 10:15 vagrant

ไม่ดีอย่างอื่นที่ฉันเคยทำมีการเปลี่ยนแปลงสิทธิ์ของ / home / dir คนจรจัดโดยไม่ได้ตั้งใจ ต่อไปนี้แก้ไขปัญหา:

# chmod 755 vagrant

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

หลังจากนั้นฉันปิดเครื่องเริ่มอีกครั้งและคนเร่ร่อนก็ทำสิ่งที่ดี :-)


เคล็ดลับดี ฉันต้องทำเช่นเดียวกันchmod -R 755 /home/vagrant/.ssh
wisbucky

2

ลองคัดลอกคีย์สาธารณะที่ไม่ปลอดภัยของคนจรจัดไปยังไฟล์.ssh/authorized_keysลงในกล่องผู้เยี่ยมชม

หวังว่านี่จะช่วยแก้ไขปัญหา ssh ของคุณ

หากคุณต้องการให้ปลอดภัยคุณสามารถทำได้โดยการคัดลอก. ssh / id_rsa.pub ของคุณเองไปยังไฟล์ดังกล่าว และการตั้งค่า

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

ใน Vagrantfile ของคุณ


2

สำหรับใครก็ตามที่ได้รับปัญหานี้ ฉันใช้เวลานานในการแก้ไข (แต่การแก้ไขเป็นเรื่องง่าย !!) ดังนั้นตามเอกสารของ Vagrant มีรหัสผ่านเริ่มต้นสำหรับผู้ใช้ 'คนจรจัด' ซึ่งเป็น 'คนจรจัด' โดยไม่ต้องใส่เครื่องหมายคำพูดเดี่ยว คุณสามารถอ่านเพิ่มเติมได้ที่เว็บไซต์ทางการของพวกเขาhttp://docs.vagrantup.com/v2/boxes/base.html


2

ฉันมีปัญหาที่คล้ายกัน ในที่สุดฉันก็แก้ไขมันโดย:

  • ตรวจสอบให้แน่ใจว่า Vagrant และ Virtualbox ทันสมัยทั้งคู่
  • ตรวจสอบให้แน่ใจว่า VirtualBox Guest Additions เป็นรุ่นล่าสุดโดยติดตั้งvagrant-vbguestปลั๊กอิน:GitHub RubyGems

    vagrant plugin install vagrant-vbguest
    

0

ทำตามขั้นตอนเพื่อแก้ไขปัญหาใน Mac OS High Sierra: -

  1. ฉันใช้เวอร์ชั่น 5.X
  2. ก่อนอื่นให้ดาวน์โหลดกล่องเสมือนและอย่าติดตั้ง
  3. ไปที่การตั้งค่าระบบ -> ความเป็นส่วนตัวและคลิกที่อนุญาตให้ดาวน์โหลดโดยอเมริกา ..
  4. ล็อคการเปลี่ยนแปลงข้างต้นและติดตั้งกล่องเสมือน
  5. คุณจะได้รับข้อความการติดตั้งเสร็จสมบูรณ์สำหรับกล่องเสมือนของคุณ
  6. ตอนนี้ไปที่ขั้วประเภทคนจรจัดขึ้น - แก้ไข
  7. มันจะเริ่มเรียกใช้สคริปต์ถ้าคุณมีและดาวน์โหลดกล่องเสมือนจริงสำหรับคุณ 8. คุณจะได้รับข้อความ 'เสร็จสิ้น'

  8. ตรวจสอบให้แน่ใจว่ามีการติดตั้งกล่องเสมือนอย่างถูกต้องจากนั้นเรียกใช้คำสั่ง vagrant เท่านั้น หากคุณประสบปัญหายกเลิกการติดตั้งกล่องเสมือนโดยใช้สคริปต์ถอนการติดตั้งที่มาพร้อมกับ pkg และลองติดตั้งอีกครั้ง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.