ฉันต้องการเปิดเซสชันเดสก์ท็อประยะไกลจากแล็ปท็อปของฉันไปยังเดสก์ท็อปผ่านอุโมงค์ SSH (ย้อนกลับ) ของฉัน นั่นควรจะง่าย (หรืออย่างน้อยก็ทำได้) ใช่ไหม? จนถึงตอนนี้ฉันใช้ Team Viewer เพื่อเข้าสู่เดสก์ท็อประยะไกล ฉันต้องการได้ผลลัพธ์ที่คล้ายกันโดยไม่มี Team Viewer
นี่คือลักษณะ SSH อุโมงค์ของฉัน:
laptop--->nat--->middleman<--nat<--desktop
ทุกเครื่องใช้ลีนุกซ์ (ส่วนใหญ่เป็น Ubuntu 12.04 หรือ OpenSuse 12.3) ฉันไม่สามารถเปลี่ยนพอร์ตใด ๆ หรือทำการเปลี่ยนแปลงการกำหนดค่าใด ๆ บนเราเตอร์ nat
ฉันจะอธิบายอุโมงค์ SSH ของฉันเพราะความเข้าใจที่ดูเหมือนมีความจำเป็นในการแก้ปัญหา VNC / เดสก์ท็อประยะไกลที่เป็นหัวใจของคำถามของฉัน เกี่ยวกับขานี้:
middleman<--nat<--desktop
... นี่คือวิธีการจัดตั้ง:
autossh -M 5234 -N -f -R 1234:localhost:22 user@middleman.com
เกี่ยวกับขานี้:
laptop--->nat--->middleman
ฉันสามารถเชื่อมต่อกับคนกลางดังต่อไปนี้:
me@laptop:~$ ssh -i ~/.ssh/id_rsa admin@middleman
อย่างไรก็ตามสิ่งที่ฉันต้องทำจริง ๆ ก็คือเชื่อมต่อโดยตรงกับเดสก์ท็อปไม่ใช่คนกลาง เมื่อต้องการทำเช่นนั้นฉันใช้ netcat ("nc") กับคนกลาง จากนี้ปรากฏว่าจำเป็นต้องมี NC ดังนั้นฉันจึงแก้ไขไฟล์กำหนดค่า SSH ของฉันบนแล็ปท็อปเพื่อใช้ ProxyCommand และ nc:
me@laptop:~/.ssh$ nano config
เนื้อหาคือ:
Host family_desktops
ProxyCommand ssh middleman_fqdn nc localhost %p
User admin
PasswordAuthentication no
IdentityFile ~/.ssh/my_id_rsa
ที่ไหนmiddleman_fqdn
เหมือน "middleman.com"
จากนั้นฉันเพิ่งเชื่อมต่อกับ "เดสก์ท็อป" ในขั้นตอนเดียว:
me@laptop:~$ ssh family_desktops -p 1234
(ฉันได้รับการทำงานตามความช่วยเหลือที่นี่และที่นี่และคำถามที่เกี่ยวข้องอื่น ๆ ที่ฉันถามฉันได้ถามคำถามมากมายในหัวข้อนี้เพราะฉันได้ปล้ำกับมันเป็นเวลาหลายสัปดาห์)
ด้วยการเชื่อมต่อ SSH desktop
นี้ฉันถึงเปลือกทำงานอย่างเต็มที่บนคอมพิวเตอร์ของฉันที่มีป้ายกำกับ สมบูรณ์
ตอนนี้ฉันต้องการโซลูชันเดสก์ท็อประยะไกลที่มีลักษณะคล้าย VNC (หรือ TeamViewer) เหนืออุโมงค์ SSH นี้ อย่างไร?
นี่คือสิ่งที่ฉันได้ลองไปแล้ว:
คนกลาง <- NAT <- สก์ท็อป
autossh -M 5235 -N -f -R 1235:localhost:5901 user@middleman.com
ด้วยการเชื่อมต่อที่จัดตั้งขึ้น:
x11vnc -autoport 5901
ฉันดูเพื่อให้แน่ใจว่าเชื่อมต่อกับพอร์ต 5901 ซึ่งทำ
แล็ปท็อป ---> NAT ---> คนกลาง <- NAT <- สก์ท็อป
แล็ปท็อป ~ / .ssh / config:
Host family_desktops
ProxyCommand ssh -NL 5901:localhost:1235 middleman.com nc localhost 1235
User admin
PasswordAuthentication no
IdentityFile ~/.ssh/my_id_rsa
การตั้งค่าอุโมงค์:
me@laptop:~$ sudo ssh family_desktops
ลูกค้า VNC:
connect to localhost:5901
สิ่งนี้ทำให้เกิดข้อผิดพลาดของ "เซิร์ฟเวอร์ไม่พบ"
ฉันได้ลองใช้งานชุดรูปแบบจำนวนมากบน ProxyCommand ไม่ประสบความสำเร็จ เห็นได้ชัดว่าฉันคาดเดาเกี่ยวกับพารามิเตอร์ที่ควรอยู่ใน ProxyCommand และที่ควรจะอยู่ในบรรทัดคำสั่ง ssh ฉันเห็นปัญหาที่อาจเกิดขึ้นกับการตั้งค่าของฉัน แต่ฉันไม่สามารถทราบได้ว่าอะไรจะทำให้การทำงานทั้งหมด
ป.ล. ตามที่กล่าวมาฉันได้ถามคำถามหลายข้อเกี่ยวกับเรื่องนี้ บางคนนำฉันเข้าใกล้โซลูชันมากขึ้นและสร้างพื้นฐานของคำถามปัจจุบันของฉัน คำถามก่อนอื่นของฉันในหัวข้อนี้เพียงแสดงความไม่รู้และไม่สามารถถามคำถามในรูปแบบที่ถูกต้อง ณ จุดนี้คำถามปัจจุบันนี้แสดงให้เห็นถึงความสามารถที่ดีที่สุดของฉันในการระบุว่าปัญหาของฉันคืออะไรและปัญหาที่ฉันต้องการคืออะไร แต่คำถามอื่น ๆ ของฉันก็ยังคงเปิดอยู่เช่นกัน นี่คือสิ่งที่เกี่ยวข้อง
desktop
อยู่หลังเราเตอร์ NAT และlaptop
อยู่หลังเราเตอร์ NAT