ฉันจะ ssh เป็นแขกของ ubuntu - ทำงานบนโฮสต์ win10 - จากเซิร์ฟเวอร์ linux ระยะไกลได้อย่างไร?


10

เวอร์ชั่นสั้น

ถ้าฉันใช้ VirtualBox VM ของผู้เยี่ยมชม Ubuntu จากโฮสต์ Windows 10 ฉันต้องทำขั้นตอนใดsshจากเซิร์ฟเวอร์ linux ระยะไกลไปยัง VM guest VM


_______________________
[                     ]
[ Windows 10          ]
[ ___________________ ]            ____________________
[ [                  ]]            [                   ]
[ [ Ubuntu VM (guest) <----HOW?---- SUSE remote server ]
[ [__________________]]            [___________________]
[_____________________]

รุ่นยาว

ฉันสับสนเพราะ AFAIK ถ้าฉันไม่ได้ใช้ VM แขกของ Ubuntu และแทนที่จะใช้เครื่องอูบุนตูตัวจริงฉันทำได้แค่cat /etc/hostsหาที่อยู่ IP ของท้องถิ่นจากระยะไกล:

user@remote --ssh--> user@<local IP>

ฉันได้ตั้งค่าคีย์ ssh แล้วเพื่อให้ฉันสามารถ ssh จากผู้เยี่ยมชม Ubuntu ไปยังเซิร์ฟเวอร์ระยะไกล SUSE (เช่นแขก~/.ssh/id_rsa.pubถูกเก็บไว้ในรีโมทแล้ว~/.ssh/authorized_keys) เช่นฉันสามารถแล้ว:

ssh -Y user@remote

ไม่มีปัญหา แต่ฉันไม่สามารถทำได้ในทางกลับกันเพียงเพราะฉันไม่รู้ว่าที่อยู่ IP ของแขกคืออะไร และฉันได้ลองsshด้วยที่อยู่ IP ใน "ข้อมูลการเชื่อมต่อ" จาก Ubuntu GUI

ยังมีความชัดเจน:

  • guest VM คือUbuntu 12.04 LTS (64-bit)

  • การตั้งค่า VirtualBox ส่วนใหญ่: ค่าเริ่มต้น

  • เปิดใช้งานอะแดปเตอร์เครือข่าย: NAT (เชื่อมต่อสายเคเบิลแล้วไม่มีการส่งต่อพอร์ต)

ฉันยังไม่ได้ตั้งค่าเซิร์ฟเวอร์ ssh แต่ฉันไม่แน่ใจว่ามันจำเป็น (?) นี่คือความเข้าใจของฉันจนถึงตอนนี้

ดังนั้นเนื่องจากฉันใช้ VirtualBox VM ของแขก VirtualBox จากโฮสต์ Windows 10 ขั้นตอนใดที่ฉันต้องใช้เพื่อดำเนินการsshจากเซิร์ฟเวอร์ระยะไกล linux ไปยัง VM guest VM ของ Ubuntu

คำตอบ:


14

ซึ่งมักเรียกว่าสถานการณ์ "double NAT" เมื่อคุณอยู่หลังเราเตอร์ คุณต้องส่งต่อจากเราเตอร์เส้นขอบไปยังระบบ Windows แล้วส่งต่อใน VBox ไปยัง VM คุณอาจต้องส่งต่อพอร์ต 22 จากการเชื่อมต่อเครือข่ายจริงกับอะแดปเตอร์ VBox NAT แต่ฉันไม่ชัดเจนว่าสำหรับ Windows

แม้ว่าท้ายที่สุดคุณมีสามสิ่งที่คุณต้องทำที่นี่ ทั้งหมดอยู่ใน Windows หรือไม่ใน Ubuntu Linux ดังนั้นคำตอบส่วนใหญ่ของคุณจะอยู่ที่ Super User หรือที่อื่น ๆ

  1. (หากคุณอยู่หลังเราเตอร์ในเครือข่ายที่เปิด Win10) ตั้งค่าการส่งต่อพอร์ตบนเราเตอร์ของคุณบนเครือข่ายเพื่อส่งต่อพอร์ต 22 ไปยังระบบ Windows 10 ของคุณ

  2. ตั้งค่า Windows Firewall ให้อนุญาตการเชื่อมต่อขาเข้าบนพอร์ต 22 คุณอาจต้องระบุว่าคุณต้องการให้พอร์ต 22 ถูกส่งต่อจากอะแดปเตอร์เครือข่ายขาเข้าของคุณไปยังเครือข่าย NAT ในการตั้งค่าเครือข่าย VM

  3. ตั้งกฎการส่งต่อ NAT บนเครือข่าย NAT ใน VirtualBox เพื่อส่งต่อพอร์ต 22 บนโฮสต์กับท่าเรือ 22 ใน VM

วิธีที่ดีกว่านี้เล็กน้อยที่จะข้ามขั้นตอนที่ 2 และขั้นตอนที่ 3 ที่นี่คือการใช้โหมดบริดจ์ในการตั้งค่าเครือข่าย VM สิ่งนี้จะได้รับ IP จากเครือข่ายเดียวกับที่เชื่อมต่อกับระบบ Windows 10 และคุณสามารถพอร์ตส่งต่อพอร์ต 22 ที่เราเตอร์ edge (ขั้นตอนที่ 1) ไปยัง IP ที่กำหนดโดยเครือข่ายไปยัง VM เอง นี่เป็นความเจ็บปวดน้อยกว่าการทำหลาย ๆ ฮ็อพและการกำหนดค่าเพื่อให้พอร์ต 22 ทำงานได้

หมายเหตุ: ISP บางตัวกรองพอร์ต 22 ดังนั้นปริมาณข้อมูลของพอร์ต 22 จึงไม่สามารถเข้าถึงระบบ คุณอาจต้องตั้งค่าพอร์ตที่สูงกว่าพอร์ต 22 (เช่น 2022 หรือพอร์ตอื่นที่ไม่เป็นมาตรฐาน> 1024) แทนหากเป็นกรณีนี้


สำหรับการค้นหา IP ของแขกข้อมูลนั้นจะอยู่ในเอาต์พุตifconfig -aหรือip -4 addr listในแขกของ Linux นั่นเป็นส่วนที่ง่ายที่สุดจากทั้งหมดนี้เพราะมันจะเหมือนกัน Bridged หรือ NAT


ฉันจะค้นคว้าขอบคุณนี้ฉันไม่รู้จริงๆว่าคุณตอบอย่างไรอย่างรวดเร็ว ... จะลบความคิดเห็นนี้หลังจากทำการวิจัย
hello_there_andy

1
@hello_there_andy ฉันทำเวอร์ชวลไลเซชันบนแล็ปท็อปของฉันมากมายไม่ว่าจะผ่านทางตู้คอนเทนเนอร์ LXC / LXD บน Linux บนการติดตั้ง NAT หรือผ่าน VMware ด้วยสิ่งที่คล้ายกับ NAT (โดยทั่วไปฉันคุ้นเคยกับชุดของปัญหานี้) กระบวนการคล้ายกันใน Linux และ Windows แต่แตกต่างกันอย่างสิ้นเชิงในแง่ของขั้นตอน แต่ในกรณีของฉัน VMs ของฉันไม่จำเป็นต้องอยู่ข้างนอก -> ใน; สำหรับ VMs เหล่านั้นฉันวางไว้บนไฮเปอร์ไวเซอร์ ESXi เฉพาะที่เป็นเครื่องที่ใช้ในการเรียกใช้ VM และเชื่อมต่อโดยตรงกับการตั้งค่าอีเทอร์เน็ตที่มีอยู่ (ไม่มี NAT ที่นั่นเหรอ) แต่นั่นเป็นการตั้งค่าที่ผิดปกติแน่นอน
โธมัสวอร์ด

1
@hello_there_andy เพียงให้แน่ใจว่าแขกได้openssh-serverติดตั้งไว้เช่นกัน - เพื่อให้คุณสามารถยอมรับ SSH นอกเหนือจากนั้นส่วนที่เหลือคือสิ่งที่เครือข่าย Windows / ไฟร์วอลล์ / การกำหนดค่า (ดังนั้นผู้ใช้ขั้นสูงและไม่ถาม Ubuntu)
Thomas Ward

3

คุณจะต้องตั้งport forwardingอยู่ในWindows 10 VM player

คุณจะต้องตั้งพอร์ตภายนอกบน Windows 10 เครื่องซึ่งจะเป็นไปข้างหน้าเพื่อservice portในในvirtual machineNAT network

ลิงค์นี้จะอธิบายวิธีการทำ


1
ในขณะนี้สิ่งนี้อาจตอบคำถามเชิงทฤษฎี แต่ลิงก์คำตอบเท่านั้นที่มักจะขมวดคิ้ว คุณควรรวมข้อมูลที่เกี่ยวข้องจากโพสต์ที่เชื่อมโยงไว้ในกรณีที่โพสต์ดังกล่าวหายไปในอนาคต
โธมัสวอร์ด

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