วิธี SSH ใน VirtualBox Guest ของคุณ

How Ssh Into Your Virtualbox Guest



มีบางครั้งที่คุณต้องการเข้าถึง VM ของคุณจากระยะไกล อาจเป็นเพียงระบบปฏิบัติการเซิร์ฟเวอร์ที่ทำงานเป็น VM ซึ่งคุณจะทดสอบแอปพลิเคชันของคุณก่อนที่จะปรับใช้จริง

ความสามารถในการใช้ SSH ใน Guest OS ของคุณจะมีประโยชน์เมื่อคุณไม่ต้องการใช้ GUI ของเครื่องเสมือนของคุณ เพียงเริ่ม VM ของคุณในโหมดหัวขาดและ SSH เข้าและออกจากระบบโดยไม่ต้องเปิดหน้าต่างหลายบานในเทอร์มินัลของคุณ







สำหรับผู้ที่ยังใหม่ต่อแนวคิดของ SSH เราจะมีการแนะนำสั้นๆ เกี่ยวกับการทำงานของ SSH ก่อนดำดิ่งสู่การตั้งค่า นอกจากนี้ เราจะต้องหารือเกี่ยวกับการตั้งค่าที่เกี่ยวข้องกับเครือข่ายของ VM ของคุณเพื่อให้แน่ใจว่าคุณสามารถเข้าถึง VM นั้นได้จากทุกที่ใน LAN ของคุณ



นี่คือแบบจำลองอย่างง่ายของวิธีการทำงานของ SSH คุณสร้างคู่ของคีย์บนคอมพิวเตอร์ของคุณ คีย์สาธารณะและคีย์ส่วนตัว ข้อความที่เข้ารหัสโดยใช้กุญแจสาธารณะสามารถถอดรหัสได้โดยใช้รหัสส่วนตัวและในทางกลับกัน คีย์เหล่านี้มักจะเก็บไว้ในเครื่องคอมพิวเตอร์ของคุณที่เส้นทาง |_+_|(คีย์ส่วนตัว) และ|_+_|(คีย์สาธารณะ)



จากนั้นคุณไปที่เซิร์ฟเวอร์ระยะไกล ลงชื่อเข้าใช้คอนโซลในฐานะผู้ใช้ปกติหรือผู้ใช้รูท เปิดไฟล์ |_+_|ของเซิร์ฟเวอร์นั้น ที่นี่คุณป้อนเนื้อหาของคีย์สาธารณะตามที่เป็นอยู่ เมื่อเสร็จแล้ว คุณสามารถ ssh ในฐานะผู้ใช้นั้นบนเซิร์ฟเวอร์ที่มีไดเร็กทอรี .ssh ที่ได้รับอนุญาต_keys จากอุปกรณ์ในเครื่องของคุณ





NS .NS ส่วนขยายหมายความว่าไฟล์นั้นเป็นกุญแจสาธารณะที่คุณสามารถแบ่งปันกับใครก็ได้ NS id_rsa ส่วนหนึ่ง แสดงว่ากำลังใช้การเข้ารหัสแบบใด (ในกรณีนี้คือ RSA) คีย์ส่วนตัวสามารถป้องกันเพิ่มเติมได้ด้วยข้อความรหัสผ่านที่คุณจะต้องป้อน ทุกครั้งที่คุณต้องการลงชื่อเข้าใช้เซิร์ฟเวอร์ระยะไกลโดยใช้คีย์ส่วนตัวนั้น

หากคุณมี Mac, Linux หรือระบบที่คล้าย UNIX อื่น ๆ เป็นเครื่องคอมพิวเตอร์ของคุณ คุณสามารถสร้างและจัดการคีย์โดยใช้เทอร์มินัล และคุณยังสามารถ SSH ไปยังเซิร์ฟเวอร์ระยะไกลโดยใช้เทอร์มินัลเดียวกันได้ สำหรับผู้ใช้ Windows ฉันขอแนะนำให้ใช้ PuTTY หรือ Git Bash หลังเป็นความชอบส่วนตัวของฉัน คำสั่งจะค่อนข้างเหมือนกันเมื่อคุณมีไคลเอ็นต์ SSH



การตั้งค่าคีย์ SSH

ก่อนอื่นตรวจสอบให้แน่ใจว่าไม่มี ssh-keys อยู่ในโฮมไดเร็กตอรี่ของคุณ ตรวจสอบเนื้อหาของโฮมไดเร็กตอรี่ของคุณ .ssh โฟลเดอร์ หากมีข้อสงสัย ให้สำรองเนื้อหาก่อนดำเนินการคำสั่งต่อไปนี้ โปรแกรมอย่าง Filezilla ใช้คีย์ SSH ตลอดเวลา โดยที่ผู้ใช้ไม่ทราบ ดังนั้นขั้นตอนนี้จึงค่อนข้างสำคัญ

ในของคุณ เครื่องท้องถิ่น ให้เปิดเทอร์มินัลแล้วป้อนคำสั่ง:

$ssh-keygen

การดำเนินการนี้จะตามมาด้วยข้อความแจ้งต่อไปนี้พร้อมค่าในวงเล็บซึ่งระบุค่าเริ่มต้น ดำเนินการตามข้อความแจ้งและให้รหัสผ่านที่ปลอดภัยแก่กุญแจของคุณ

ตรวจสอบว่าคีย์ถูกสร้างขึ้นโดยการตรวจสอบเนื้อหาของคุณ ~/.ssh โฟลเดอร์

$ลส - ถึง~/.ssh

หากคุณเห็นไฟล์ที่ตรงกับค่าเริ่มต้นที่แสดงในไฟล์ ssh-keygen พรอมต์แล้วทุกอย่างทำงานได้ดี

ตอนนี้เปิดคอนโซลของคุณ เครื่องเสมือน . ก่อนอื่นให้ตรวจสอบว่า VM ของคุณมีเซิร์ฟเวอร์ SSH ทำงานอยู่หรือไม่

$สถานะบริการ sshd

หากไม่ได้ติดตั้งไว้ ให้ใช้ตัวจัดการแพ็คเกจเพื่อค้นหาและติดตั้งเซิร์ฟเวอร์ OpenSSH เมื่อเสร็จแล้ว ตรวจสอบให้แน่ใจว่าไฟร์วอลล์ของ VM ของคุณเปิดอยู่ที่พอร์ตหมายเลข 22 ตัวอย่างเช่น หากคุณใช้ Ubuntu เป็น VM ไฟร์วอลล์เริ่มต้น ufw ควรปิดใช้งานหรือควรอนุญาตการเชื่อมต่อพอร์ต 22 ดังนี้:

$sudoufw สถานะ

หากไม่ได้เปิดที่พอร์ต 22 ให้ใช้คำสั่งต่อไปนี้:

$sudoufw อนุญาตssh

ต่อไปเปิดไฟล์ ~/.ssh/authorized_keys บน VM โดยใช้โปรแกรมแก้ไขข้อความที่คุณชื่นชอบ คุณอาจต้องการเปิดใช้งานคลิปบอร์ดแบบโฮสต์ถึงแขกหรือแบบสองทิศทางสำหรับขั้นตอนต่อไปนี้

ภายในไฟล์นี้ (ที่ด้านล่างของไฟล์หากไม่ว่างเปล่า) ให้วางเนื้อหาของคุณ กุญแจสาธารณะ ส่วนสุดท้ายที่มันบอกชื่อของคุณและโฮสต์ท้องถิ่นที่สร้างคีย์นั้นไม่สำคัญเท่ากับส่วนที่เหลือของสตริง

(ไม่บังคับ) ไม่ใช้ SSH-keys

หากคุณเชื่อถือเครือข่ายท้องถิ่น คุณสามารถใช้วิธีการที่ปลอดภัยน้อยกว่าของการใช้รหัสผ่าน UNIX ของคุณเพื่อ ssh ใน VM ของคุณ เปิดไฟล์ /etc/ssh/sshd_config บน VM ของคุณและแทนที่บรรทัด:

#หมายเลขรับรองความถูกต้องของรหัสผ่าน

ถึง

การตรวจสอบรหัสผ่านใช่

เมื่อพร้อมแล้ว ให้รีสตาร์ทเซิร์ฟเวอร์ SSH ของคุณ

$บริการ sshd รีสตาร์ท

ตอนนี้คุณสามารถใช้รหัสผ่านปกติที่คุณใช้เพื่อเข้าสู่ระบบ VM เพื่อ ssh เข้าไปได้เช่นกัน

เครื่องเสมือนและเครือข่ายของคุณ

เพื่อให้คุณ ssh เข้าสู่ VM ทั้งเครื่องคอมพิวเตอร์ของคุณ (เครื่องที่มีคีย์ส่วนตัว) และ VM ควรอยู่ในเครือข่ายเดียวกัน ดังนั้นคุณจึงสามารถเข้าถึงที่อยู่ IP ของ VM นั้นได้ เราจะแสดงวิธีเพิ่ม VM ไปยัง LAN ของคุณ

ลองพิจารณาตัวอย่างการตั้งค่าเราเตอร์ที่บ้านโดยทั่วไป คอมพิวเตอร์ของคุณพร้อมกับอุปกรณ์อื่นๆ เชื่อมต่อกับเราเตอร์ที่บ้าน เราเตอร์นี้ยังทำหน้าที่เป็นเซิร์ฟเวอร์ DHCP ซึ่งหมายความว่าจะกำหนดอุปกรณ์แต่ละเครื่องที่เชื่อมต่ออยู่ ซึ่งเป็นที่อยู่ IP ส่วนตัวที่ไม่ซ้ำกัน เดสก์ท็อปของคุณได้รับ IP เช่นเดียวกับโทรศัพท์และแล็ปท็อปของคุณ เฉพาะอุปกรณ์ที่เชื่อมต่อกับเราเตอร์นี้เท่านั้นที่สามารถพูดคุยกันผ่านที่อยู่ IP

เปิดใช้งานโหมดเครือข่ายบริดจ์ในการตั้งค่า VM ของคุณและ VM จะแสดงขึ้นว่าเชื่อมต่อกับเราเตอร์ที่บ้านของคุณ (หรือเซิร์ฟเวอร์ DHCP ที่คล้ายกัน) ด้วย IP ส่วนตัว หากอุปกรณ์เครื่องที่สองเชื่อมต่อกับเครือข่ายเดียวกัน (เช่น กับเราเตอร์ที่บ้านเดียวกัน) ก็จะสามารถใช้ ssh ลงใน VM ได้

เปิด VirtualBox Manager เลือก VM เป้าหมายของคุณ เปิด การตั้งค่า → เครือข่าย และเลือก Bridge Networking แทน NAT

อย่างที่คุณเห็นโฮสต์ของฉันเชื่อมต่อโดยใช้ไร้สาย ดังนั้นการเชื่อมต่อจะถูกแชร์โดย VM หากคุณใช้อีเทอร์เน็ต ชื่ออินเทอร์เฟซอื่นจะปรากฏขึ้นซึ่งถือว่าใช้ได้

ตอนนี้ VM ของฉันซึ่งมีชื่อว่า อูบุนตูฟม, แสดงขึ้นในการตั้งค่า LAN ของฉันดังต่อไปนี้ ตรวจสอบการตั้งค่าเราเตอร์ของคุณเพื่อดูว่าสิ่งเดียวกันนี้เหมาะกับคุณหรือไม่

เมื่อคุณทราบที่อยู่ IP ของ VM แล้ว คุณสามารถ SSH เข้าไปได้โดยเรียกใช้คำสั่ง:

$ssh <ชื่อผู้ใช้> @ip.address.of.your.vm

หากคุณใส่ข้อความรหัสผ่านสำหรับคีย์ส่วนตัวของคุณในขั้นตอนข้างต้น คุณจะได้รับแจ้งให้ป้อนใหม่

แค่นั้นแหละ! ตอนนี้คุณสามารถเริ่ม VM ของคุณในโหมดหัวขาดและเพียงแค่ ssh เข้าไปจากที่ใดก็ได้ในบ้านของคุณ หวังว่าคุณจะพบว่าบทช่วยสอนนี้น่าสนใจ โปรดแจ้งให้เราทราบหากมีหัวข้อใดที่คุณต้องการให้เราอธิบาย