SSH เป็น VirtualBox Guest: การเชื่อมต่อถูกปฏิเสธ


21

ติดตั้ง

  • Windows 7 64-bit host OS ที่ใช้ VirtualBox 4.2, กับ Ubuntu 12.04 guest OS
  • เซิร์ฟเวอร์ OpenSSH ถูกติดตั้งและรันอยู่ ( ssh -v localhostเชื่อมต่อแบบโลคัลในเครื่องแขก)
  • สามารถ SSH ไปยังเซิร์ฟเวอร์ภายนอก (ไม่มีกฎไฟร์วอลล์ Windows บล็อกขาออกพอร์ต 22)
  • สามารถ ping IP ของแขกได้ (192.168.56.101)

ปัญหา

การใช้ PuTTY ถึง SSH ไปยัง IP ของ guest OS (192.168.56.101) PuTTY จะส่งคืนเกือบทันทีด้วย

ข้อผิดพลาดของเครือข่าย: การเชื่อมต่อถูกปฏิเสธ

ฉันจะวินิจฉัยและแก้ไขปัญหานี้ได้อย่างไร

คำตอบ:


10

คุณแน่ใจหรือไม่ว่า IP นั้นใช้สำหรับระบบปฏิบัติการของแขก ฉันมีปัญหาเดียวกันและปรากฎว่า IP ที่ฉันใช้มาตลอด 192.168.56.101 นั้นเป็นอินเทอร์เฟซ Windows จริง ๆ และโฮสต์ OS IP นั้นเป็น 192.168.56.103

คุณสามารถตรวจสอบได้โดยทำ ipconfig / ifconfig ทั้งคู่

หมายเหตุ: ฉันได้ติดตั้ง IP แบบคงที่ซึ่งปรากฏว่าฉันไม่ต้องการเลย ในกรณีที่คุณลองตั้งแต่ต้นฉันพบว่าบทช่วยสอนนี้ดีขึ้น


6
+1, VirtualBox เริ่มต้นคือการสร้างแขกที่มีอะแดปเตอร์เครือข่ายเสมือนเป็น NAT'ed ผ่าน VirtualBox ตัวเอง ดังนั้นแขกดังกล่าวจะสามารถออก SSH และจะสามารถ SSH เองแต่มันจะไม่สามารถรับการเชื่อมต่อ SSH จนกว่ากฎการส่งต่อพอร์ตถูกสร้างขึ้นใน VirtualBox
Gord Thompson

+1 หลังจากผ่านไป 1 ชั่วโมงกับระเบียบ Google ในที่สุด! ฉันคิดว่า. 101 เป็นแขกไม่ใช่เจ้าบ้าน!
Afr

6

ไม่มีวิธีแก้ปัญหาอื่นที่ดีเพราะ:

  1. ไม่มีประโยชน์ที่จะบอกแขกของคุณผ่านทางสะพานหากแขกจะหลวมการเข้าถึงอินเทอร์เน็ต
  2. โซลูชันอื่นทั้งหมดข้างต้นบอกให้คุณสร้างจรวดเพื่อข้ามถนน

สถานการณ์

  • โฮสต์ Ubuntu Desktop 16.04
  • เซิร์ฟเวอร์ Ubuntu สำหรับแขก 16.04 (ทำงานบนกล่องเสมือน 5)

ปัญหา

การเชื่อมต่อ SSH ถูกปฏิเสธ

วิธีการแก้

  1. ปิดอูบุนตูแขกของคุณลง
  2. บน Virtualbox ไปที่การตั้งค่า> เครือข่าย> อะแดปเตอร์ 1> ขั้นสูง> การส่งต่อพอร์ต
  3. ชื่อ = SSH Hostport = 2022 (หรือพอร์ตใดก็ได้ยกเว้น 22) Guestport (22)
  4. รีบูตแขกของคุณ
  5. เมื่อคุณโฮสต์เปิด Putty หรืออะไรก็ตามที่คุณใช้สำหรับ SSH
  6. ssh user@127.0.0.1 -p2022 (หรือพอร์ตใด ๆ ที่คุณพูดถึงว่าเป็น hostport)
  7. ขอให้สนุกกับคุณ

ฉันมีปัญหากับสิ่งนี้: ในการตั้งค่า Virtualbox> เครือข่าย> อะแดปเตอร์ 1> ขั้นสูง> การพอร์ตสำหรับพอร์ตเป็นสีเทาไม่สามารถคลิกได้ imgur.com/seT3p02
SL5net

@ SL5net ปิด VM
Alon Gouldman

2

งานต่อไปนี้สำหรับฉัน:

ก่อน:

vboxnet0: 192.168.56.1
eth1:     192.168.56.1

หลังจาก:

vboxnet0: 192.168.56.1
eth1:     192.168.56.101

ดังนั้นโดยทั่วไปฉันเปลี่ยนบางส่วนของไฟล์ {/ etc / network / interfaces} ดังนี้

ก่อน:

auto eth1
iface eth1 inet static
address 192.168.56.1
netmask 255.255.255.0 

หลังจาก:

auto eth1
iface eth1 inet static
address 192.168.56.101
netmask 255.255.255.0 

ผลงาน: ssh username@192.168.56.101


ไม่รู้ว่าทำไมมันถึงได้ผลสำหรับฉัน ขอบคุณ @Mause
murarisumit

2

Secure Shell (SSH) เป็นโปรโตคอลสำหรับการเข้าสู่และดำเนินการคำสั่งบนเครื่องระยะไกล มันให้การสื่อสารที่เข้ารหัสที่ปลอดภัย หากคุณวางแผนที่จะเข้าถึงเครื่องของคุณจากระยะไกลผ่าน SSH ผ่านอินเทอร์เฟซไฟร์วอลล์ให้เปิดใช้งานตัวเลือกนี้ คุณต้องติดตั้งแพ็คเกจ openssh-server เพื่อให้ตัวเลือกนี้มีประโยชน์

นี่คือข้อมูลที่openssh-serverจะต้องมีการติดตั้งแพ็กเกจ หลังจากทำสิ่งนั้นกับแขกและรีสตาร์ท vm คุณสามารถใช้ ssh


ฉันไม่ได้รีสตาร์ท Ubuntu 16.04 และยังใช้งานได้ ขอบคุณ :)
Oren Milman

1

คุณควรตรวจสอบว่าไฟร์วอลล์แขกของคุณไม่ได้บล็อกการเชื่อมต่อขาเข้าที่พอร์ต 22


1
ไฟร์วอลล์ระบบปฏิบัติการ guest ถูกปิดใช้งาน sudo ufw statusนั่นคือการเริ่มต้นและผมตรวจสอบแล้วมันจะถูกปิดการใช้งานด้วย
Eric J.

1

อาจเป็นปัญหาเกี่ยวกับการควบคุมการเข้าถึง หากต้องการปิดใช้งานและอนุญาตการเข้าถึงแบบเต็มในฐานะรูท:

xhosts +

ฉันมีปัญหาคล้ายกันกับโปรแกรมดู VNC


1
ฉันสงสัยจริงๆว่า IMHO sshd ไม่มีส่วนเกี่ยวข้องกับ X - ตรงกันข้ามกับ vnc
mpy

1

ปัญหาได้รับการแก้ไขโดยการเปิดใช้งานเซิร์ฟเวอร์ DHCP บนอะแดปเตอร์เครือข่าย VirtualBox

VirtualBox (เวอร์ชั่นล่าสุดรุ่น 5) -> ไฟล์ -> การตั้งค่า -> เครือข่าย -> เครือข่ายเฉพาะโฮสต์ (แท็บ) -> รายละเอียดเครือข่ายเฉพาะโฮสต์ (เครื่องมือไอคอน) -> เซิร์ฟเวอร์ DHCP

  1. เลือกเปิดใช้งานเซิร์ฟเวอร์
  2. กรอกที่อยู่ IP
  3. โอเคโอเค
  4. รีสตาร์ทเครื่องเสมือน

การตั้งค่าของฉันสำหรับขั้นตอนที่ 2

  1. ที่อยู่เซิร์ฟเวอร์: 192.168.56.100
  2. รูปแบบเซิร์ฟเวอร์: 255.255.255.0
  3. ขอบเขตที่อยู่ด้านล่าง: 192.168.56.101
  4. ขอบเขตที่อยู่ด้านบน: 192.168.56.200

1

สวัสดีฉันเพิ่งกลับไปที่หน้าแรกที่ฉันพบในมินิซากะของฉันเกี่ยวกับการแก้ไขปัญหาและการวิจัยหวังว่าการสอนนี้ฉันสามารถช่วยคนอื่นให้ยุ่งยากได้ทั้งหมด

คำแนะนำแบบเริ่มต้นเพื่อตั้งค่าเซิร์ฟเวอร์ CentOS ด้วย Oracle VM:

ส่วนที่ 1 - การตั้งค่าเครื่องเสมือน

  1. ติดตั้งออราเคิล VM VirtualBox และการขยายตัวแพ็คที่นี่
  2. ดาวน์โหลดติดตั้งน้อย CentOS ที่นี่
  3. สำหรับบทช่วยสอนนี้ฉันใช้ไคลเอนต์ Ubuntu มาตรฐาน ISO สำหรับที่สามารถพบได้ที่นี่
  4. สร้างเซิร์ฟเวอร์ CentOS และเครื่องเสมือนของลูกค้าของคุณ
  5. ติดตั้ง CentOS VM เปิดปลายทางการติดตั้งแล้วกดย้อนกลับ ข ไปที่เครือข่ายและชื่อโฮสต์หากคุณต้องการเปลี่ยนชื่อโฮสต์ที่ฉันแนะนำ ค รู้สึกฟรีเพื่อกำหนดค่ารายการภายใต้การรองรับหลายภาษา VirtualBox จัดการทุกอย่างอื่นโดยอัตโนมัติ d กดเริ่มการติดตั้ง อี สร้างทั้งบัญชีรูทและบัญชีปกติ ตรวจสอบให้แน่ใจหลังมีสิทธิ์ผู้ดูแลระบบ ฉ เมื่อแถบโหลดเต็มกด Reboot
  6. ตั้งค่าไคลเอนต์ VM ของคุณ ติดตั้งเพิ่มเติมจากแขก VirtualBox

ส่วนที่ II - การกำหนดค่าเครือข่ายเสมือน

  1. ใน VirtualBox กด CTRL + W
  2. สร้างเครือข่ายโฮสต์ใหม่ หากคุณได้รับข้อผิดพลาดน่าจะเกิดจากระบบปฏิบัติการโฮสต์ของคุณซึ่งทำให้เกิดปัญหา VirtualBox ในการติดตั้งไดรเวอร์ คุณจะต้องถอนการติดตั้ง VirtualBox อย่างสมบูรณ์และติดตั้งเวอร์ชันล่าสุด ตรวจสอบให้แน่ใจว่าได้รันการติดตั้งในฐานะผู้ดูแลระบบ
  3. ใต้แท็บอะแดปเตอร์เลือก“ กำหนดค่าอะแดปเตอร์ด้วยตนเอง”
  4. สำหรับ Windows ให้เปิด Command Prompt และพิมพ์ ipconfig
  5. เลื่อนดูเอาต์พุตจนกว่าคุณจะพบชื่อเครือข่ายเฉพาะโฮสต์ที่คุณเพิ่งสร้าง ใช้ที่อยู่ IPv4 และรูปแบบนี้สำหรับการกำหนดค่าเครือข่าย VirtualBox
  6. ปิดตัวจัดการเครือข่ายโฮสต์
  7. เปิดการตั้งค่าไคลเอนต์ VM ของคุณ ภายใต้เครือข่ายให้เปิดใช้งานอะแดปเตอร์ 2 เลือกอะแดปเตอร์สำหรับโฮสต์เท่านั้นจากนั้นชื่อคือชื่อของเครือข่ายสำหรับโฮสต์ที่สร้างขึ้นใหม่เท่านั้น
  8. ทำซ้ำขั้นตอนสุดท้ายสำหรับเซิร์ฟเวอร์ CentOS VM ของคุณ นอกจากนี้ให้ไปที่การส่งต่อพอร์ตของอะแดปเตอร์ 1 ภายใต้แท็บขั้นสูงและสร้างกฎใหม่ ตั้งค่าทั้งโฮสต์และเกสต์พอร์ตเป็น 22
  9. ก่อนปิดการตั้งค่าขั้นสูงให้จดบันทึกที่อยู่ MAC

ส่วนที่สาม - การกำหนดค่าเซิร์ฟเวอร์

  1. เรียกใช้ CentOS VM ของคุณ
  2. Run yum check-update, และyum upgradeyum clean all
  3. nmtuiวิ่ง
  4. กด Enter เหนือ“ แก้ไขการเชื่อมต่อ”
  5. คุณควรเห็น“ enp03s” และ“ การเชื่อมต่อแบบใช้สาย 1” หากคุณมีสองตัวเลือกการเชื่อมต่อ แต่ไม่แน่ใจว่าจะใช้ตัวเลือกใดให้ไปแก้ไขตัวเลือกหนึ่ง หากค่าอุปกรณ์ตรงกับที่อยู่ MAC ที่เห็นภายใต้อะแดปเตอร์ 1 จากส่วนที่สองนั่นคือการเชื่อมต่อ NAT ของคุณมิฉะนั้นจะเป็นการเชื่อมต่อโฮสต์ของคุณเท่านั้น
  6. แก้ไขการเชื่อมต่อเฉพาะโฮสต์ของคุณ: ตั้งค่าคอนฟิก IPv4 เป็น“ คู่มือ” b. แสดงการกำหนดค่า IPv4 ใน VirtualBox กด CTRL + W ถัดจากชื่อเครือข่ายโฮสต์เดียวของคุณคุณจะเห็นและการรวมกัน IP Address / หน้ากากรูปแบบ“[IP] / [หน้ากาก].” บนเซิร์ฟเวอร์ของคุณภายใต้การกำหนดค่า IPv4 <Add…>นี้เป็นสิ่งที่คุณจะพิมพ์หลังจากที่กด d ลงแล้วกดตกลง
  7. ตรวจสอบให้แน่ใจว่ามีการเลือก“ เชื่อมต่ออัตโนมัติ” สำหรับทั้งการเชื่อมต่อโฮสต์เท่านั้นและ NAT
  8. ออกนำทางของและnmtuireboot

ส่วนที่ IV - การกำหนดค่าและการใช้งานไคลเอ็นต์

  1. บูทไคลเอ็นต์ VM ของคุณ
  2. (ทางเลือก) แก้ไข / etc / hosts เพื่อรวมบรรทัดของแบบฟอร์ม: [serv_ip_addr] [ชื่อโฮสต์] โดยที่ serv_ip_addr เป็นที่อยู่ IP ของเซิร์ฟเวอร์ CentOS ของคุณ (เอาต์พุตที่สองของhostname -Iใน CentOS terminal ของคุณ) สิ่งนี้จะช่วยให้คุณสามารถใช้สิ่งที่คุณเลือกสำหรับ [ชื่อโฮสต์] แทนกันด้วยที่อยู่ IP ของเซิร์ฟเวอร์ของคุณ ฉันมักจะตั้งค่านี้เป็นชื่อโฮสต์ที่เลือกในส่วนที่สอง
  3. หากทุกอย่างไปถึงจุดนี้คุณควรจะสามารถ ssh [user]@[hostname]เข้าสู่เซิร์ฟเวอร์ CentOS ของคุณ หากไม่เป็นเช่นนั้นคุณอาจต้องติดตั้งopenssh-clientและopenssh-serverบนเครื่องของคุณ

ส่วนที่ V - แสดงเว็บไซต์

  1. นี่คือคำแนะนำที่ดีเยี่ยมในการโฮสต์เว็บไซต์ของคุณเองจากการตั้งค่าตามที่อธิบายไว้ข้างต้น

0

ฉันต้องแก้ปัญหานี้โดยการเพิ่มกฎ ufw สำหรับอะแดปเตอร์ที่ 2:

ufw allow in on enp0s8 to 192.168.56.101 port 22 proto tcp

โดยที่ enp0s8 เป็นชื่อของอะแดปเตอร์ตัวที่ 2 ของฉัน (บน Ubuntu รุ่นเก่านี่คือ eth1)


-1

ในกล่อง Linux ของคุณ (VirtualBox Ubuntu) เปิด Terminal และป้อนคำสั่งต่อไปนี้: sudo service ssh start

ลองเชื่อมต่ออีกครั้งหลังจากนี้

โอ้ฉันเลวฉันคิดถึงสิ่งที่ gronostaj ชี้ให้เห็น

ตกลงบางครั้งการแก้ปัญหานั้นง่ายมาก เมื่อเร็ว ๆ นี้ฉันประสบปัญหาเดียวกันกับแขก Slackware บนโฮสต์ windows 7 สิ่งที่ฉันต้องทำคือ ifconfig up eth'X 'และกำหนด IP 192.168.56.xxx sub net 255.255.255.0 (ถ้าเป็นอะแดปเตอร์สำหรับโฮสต์เท่านั้น) คำถามนี้อายุเกือบหนึ่งปีดังนั้นฉันจึงพูดถึงสิ่งนี้สำหรับคนที่ฉันสะดุด ในหน้านี้ค้นหา "การเชื่อมต่อ ssh ถูกปฏิเสธ" ;-)


OP ระบุว่าการเชื่อมต่อ SSH ในพื้นที่ทำงานดังนั้นเซิร์ฟเวอร์กำลังทำงาน
gronostaj

-2

พบปัญหาเดียวกันแก้ไขโดยเพิ่มฮาร์ดไดรฟ์เสมือนลงใน VM ซึ่งไม่มีเลย


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

สิ่งนี้ไม่ได้ให้คำตอบสำหรับคำถาม เมื่อคุณมีเพียงพอชื่อเสียงคุณจะสามารถที่จะแสดงความคิดเห็นในโพสต์ใด ๆ ; แทนที่จะให้คำตอบที่ไม่จำเป็นต้องชี้แจงจากผู้ถาม - จากรีวิว
music2myear

VM ของฉันถูกบูทด้วยไฟล์ ISO 32 บิต Linux โดยไม่มีฮาร์ดไดรฟ์เสมือนเพิ่มเติม
Louis Garczynski

ซึ่งหมายความว่าคุณกำลังใช้งานเซสชัน "Live" Linux ซึ่งไม่ใช่สิ่งที่ OP กำลังดำเนินการ เราดีใจที่คุณแก้ไขปัญหาของคุณ แต่ทางออกของคุณไม่ใช่วิธีการแก้ปัญหาหรือโดยเฉพาะอย่างยิ่งใกล้กับสิ่งที่ OP กำลังประสบอยู่
music2myear

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