“ ช่อง 3: เปิดล้มเหลว: ไม่อนุญาตให้ดำเนินการ: เปิดล้มเหลว” เมื่อสร้างเซสชัน VNC บนอุโมงค์ SSH


10

ในการสร้างการเชื่อมต่อ VNC ผ่านการเชื่อมต่อช่องสัญญาณ SSH ฉันได้รับข้อผิดพลาด:

channel 3: open failed: administratively prohibited: open failed

ฉันพบว่าสิ่งนี้เกิดขึ้นเฉพาะเมื่อฉันไม่ได้ลงชื่อเข้าใช้โฮสต์ภายในเครื่องเนื่องจากเป็นusernameโฮสต์ที่ฉันพยายามเชื่อมต่อโดยใช้การเชื่อมต่อ VNC แบบช่องสัญญาณ อุโมงค์ SSH:

ssh -p 6000 -L 5901:127.0.0.1:5901 username@192.168.0.2

การเชื่อมต่อ VNC:

vncviewer localhost:1

ฉันได้ลองปรับการตั้งค่า/etc/ssh/sshd_configโดยใช้AllowTunnel yesและไม่มีการตั้งค่า (ฉันไม่ SSH เริ่มต้นใหม่หลังจากมีการเปลี่ยนแปลง: service ssh restart) แต่ข้อผิดพลาดออกไปถ้าผมมีช่วงท้องถิ่นทำงานในพื้นที่ห่างไกล (เช่นฉันเข้าสู่ระบบเป็นusernameท้องถิ่น.) เป็นคนอื่นได้เห็นพฤติกรรมนี้หรือไม่? ดูเหมือนว่าฉันควรจะสามารถเริ่ม VNC จากระยะไกลและเข้าถึงได้โดยไม่ต้องเข้าสู่ระบบในท้องถิ่นเช่นกัน


1
ไมค์โปรดตรวจสอบทัวร์เพื่อดูว่าไซต์นี้ทำงานอย่างไรและหากคำตอบของฉันแก้ไขปัญหาของคุณได้โปรดยอมรับมัน
— Jakuje

คำตอบ:


14

ตัวเลือกที่คุณกำลังมองหาไม่ใช่AllowTunnel(สำหรับ VPN และการส่งต่อระดับ 3 โดยใช้tunอุปกรณ์) คุณกำลังมองหาAllowTcpForwardingซึ่งจัดการการส่งต่อพอร์ตท้องถิ่นและระยะไกลของการรับส่งข้อมูล TCP ใน ssh

ดูสิ่งที่มีค่าในเซิร์ฟเวอร์ของคุณและเปลี่ยนเป็นyes:

AllowTcpForwarding yes

ขอบคุณสำหรับคำตอบที่รวดเร็ว ดูเหมือนว่าจะแก้ไขปัญหาของฉันแล้ว ฉันได้เห็นคนอื่น ๆ ด้วยปัญหาเดียวกันและเป็นหนึ่งในข้อเสนอแนะที่เป็นAllowTunnel yesในsshd_configแต่ที่ไม่ได้ทำงานสำหรับฉัน
— Mike Swartz

1
มันอาจจะเป็นตำนานเมืองบางอย่างเช่นเดียวกับคำตอบอื่น ๆ ที่มาที่นี่ ไม่มีความคิดว่ามันมาจากไหนและง่ายต่อการเปิดหน้าคู่มือและตรวจสอบความหมาย หากวิธีนี้ใช้ได้ผลกับคุณลองใช้เวลาสักครู่เพื่อตรวจสอบคำตอบเพื่อช่วยผู้อื่น
— Jakuje

1
ทำไมต้องโหวต
— Jakuje

AllowTcpForwarding ระบุว่าอนุญาตให้ส่งต่อ TCP ได้หรือไม่ ตัวเลือกที่มีคือ“ ใช่” หรือ“ ทั้งหมด” เพื่ออนุญาตการส่งต่อ TCP,“ ไม่” เพื่อป้องกันการส่งต่อ TCP ทั้งหมด,“ ท้องถิ่น” เพื่ออนุญาตให้ท้องถิ่น (จากมุมมองของ ssh (1)) การส่งต่อเท่านั้นหรือ“ ระยะไกล” เพื่ออนุญาตระยะไกล ส่งต่อเท่านั้น ค่าเริ่มต้นคือ“ ใช่”
— Bart Polot

เกี่ยวข้อง (false): serverfault.com/a/24389/328011
— YSC

0

ฉันมีสาเหตุการแก้ไขชื่อสำหรับข้อผิดพลาดนี้ / etc / hosts ของฉันมีที่อยู่ IP ที่ผิดพลาดสำหรับชื่อของเซิร์ฟเวอร์ (ไม่ใช่สำหรับโฮสต์ในพื้นที่) เช่นนี้:

127.0.0.1     localhost
192.168.2.45  server.domain.com server

แต่ IP ของเซิร์ฟเวอร์ที่กำหนดค่า (และชื่อ DNS ที่แก้ไขด้วยคำสั่ง host / dig) คือ 192.168.2.47 พิมพ์ผิดง่ายที่เกิดจากการกำหนดค่า IP ก่อนหน้า หลังจากแก้ไข / etc / hosts การเชื่อมต่อกับอุโมงค์ยังทำงานได้อย่างไร้ที่ติ:

ssh user@server.domain.com -L 3456:127.0.0.1:5901

มันแปลกที่ IP จริงทำให้เกิดความล้มเหลวเมื่อฉันใช้ localhost IP ตามตัวอักษรสำหรับอุโมงค์ Distro: Ubuntu 16.04 LTS

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