SSH ผ่านพร็อกซี
หากไฟร์วอลล์ให้คุณคุณสามารถเรียกใช้ ssh ไปยังพอร์ตใดก็ได้ แต่ต้องใช้เซิร์ฟเวอร์ ssh เพื่อฟังพอร์ตนั้น พอร์ต 80 ไม่น่าใช้งานได้เนื่องจากสถานที่ส่วนใหญ่ที่มีไฟร์วอลล์วิเคราะห์ปริมาณการใช้งานบนพอร์ตนั้นและบล็อกสิ่งที่ไม่ใช่ HTTP แต่พอร์ต 443 ซึ่งมักจะเป็นพอร์ต HTTPS มักใช้งานได้เนื่องจาก SSH และ HTTPS มีลักษณะคล้ายกันมากในการกรองซอฟต์แวร์ดังนั้นเซสชัน SSH ของคุณจะดูเหมือนเซสชัน HTTPS (เป็นไปได้ที่จะแยกความแตกต่าง HTTPS และ SSH ดังนั้นสิ่งนี้จะไม่ทำงานหากไฟร์วอลล์มีความซับซ้อนเพียงพอ)
หากคุณสามารถควบคุมเซิร์ฟเวอร์ให้ทำการฟังบนพอร์ต 443 นอกเหนือจาก 22 (พอร์ต ssh ปกติ) คุณสามารถกำหนดค่าพอร์ตใน/etc/ssh/sshd_config
: เพิ่มบรรทัด
Port 443
นอกเหนือจากPort 22
ที่ควรมีอยู่แล้ว โปรดทราบว่านี่ถือว่าเซิร์ฟเวอร์ ssh ไม่ใช่เซิร์ฟเวอร์ HTTPS หากเป็นเช่นนั้นคุณจะต้องค้นหาพอร์ตอื่นที่ไฟร์วอลล์ให้คุณใช้หรือค้นหาเซิร์ฟเวอร์ ssh อื่น (ดูการส่งต่อด้านล่าง)
หากคุณไม่จำเป็นต้องตั้งค่าเว็บพรอกซีในเว็บเบราว์เซอร์ของคุณคุณสามารถลองเชื่อมต่อได้โดยตรง:
ssh -p 443 myserver.example.com
หากใช้งานได้ให้กำหนดนามแฝงใน~/.ssh/config
:
Host myserver
HostName myserver.example.com
Port 443
หากคุณต้องการตั้งค่าเว็บพร็อกซีในเว็บเบราว์เซอร์ของคุณบอก ssh ให้ผ่านพร็อกซี ติดตั้งเกลียว กำหนดนามแฝงเช่นนี้ในของคุณ~/.ssh/config
โดยที่http://proxy.acme.com:3128/
พร็อกซีที่คุณใช้สำหรับ HTTPS เป็นภายนอก (แทนที่ด้วยชื่อโฮสต์และพอร์ตที่เหมาะสม):
Host myserver
HostName myserver.example.com
Port 443
ProxyCommand /usr/bin/corkscrew proxy.acme.com 3128 %h %p
SSH มากกว่า SSH
หากคุณสามารถไปยังเครื่องภายนอกโดยใช้หนึ่งในเทคนิคด้านบน แต่ไม่ใช้กับเครื่องที่คุณสนใจให้ใช้เพื่อส่งต่อการเชื่อมต่อ สมมติว่าคุณสามารถ ssh กับเครื่องที่เรียกว่าmygateway
และคุณต้องการเข้าถึงเซิร์ฟเวอร์ SSH บนmytarget
ติดตั้งnetcat-openbsdบนmygateway
(หรือถ้าไม่ได้ใช้งาน Ubuntu ให้แน่ใจว่ามันมีnc
คำสั่ง) ใส่สิ่งนี้ใน~/.ssh/config
:
Host mytarget
ProxyCommand ssh mygateway nc %h %p
SSH ไปยัง Apache
หากโฮสต์ที่คุณต้องการเชื่อมต่อกำลังใช้งาน Apache และกำลังฟังพอร์ต 443 อยู่และคุณสามารถควบคุมโฮสต์นั้นได้คุณสามารถตั้งค่า Apache นี้ให้ยอมรับการเชื่อมต่อ SSH และส่งต่อพวกเขา ดูอุโมงค์ SSH ผ่าน HTTP (S)
man ssh
เผยให้เห็นพอร์ต: โฮสต์: hostport ดังนั้นลองssh 80:server.com
หรือดังนั้น