“ ช่อง 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.