SSH ผ่าน SOCKS Proxy หรือไม่? (ลูกค้า = OpenSSH OS X)


11

ฉันไม่แน่ใจว่าคำถามนี้เหมาะสมที่สุดกับ ServerFault หรือที่ SuperUser หรือไม่ คิดเกี่ยวกับมันอย่างมีเหตุผลฉันคิดว่านี่เป็นคำถามดูแลระบบดังนั้นฉันวางไว้ที่นี่และถ้า mods คิดว่ามันควรจะเคลื่อนไหวแล้วขอโทษที่เดาผิด!

อย่างไรก็ตามฉันมีเซิร์ฟเวอร์นอกไซต์และฉันติดอยู่บน IP ส่วนตัวที่ไม่สามารถเข้าถึงอินเทอร์เน็ตยกเว้นผ่านพร็อกซี HTTP หรือพร็อกซี SOCKS 4/5 ฉันใช้ OS X และฉันต้องการคำสั่ง ssh จากเทอร์มินัลเพื่อทำงานผ่านพร็อกซีหนึ่งในสองแห่งเพื่อออกไปยังเซิร์ฟเวอร์ระยะไกล พอร์ต SSH บนเซิร์ฟเวอร์ระยะไกลนั้นไม่ได้มาตรฐาน แต่ฉันสงสัยว่าจะสร้างความแตกต่างได้มาก

คำตอบ:


5

ฉันรู้ว่านี่เป็นโพสต์โบราณ แต่ฉันคิดว่าคำตอบนี้จะยังคงเป็นประโยชน์:

คุณสามารถทำได้อย่างง่ายดายผ่านพร็อกซี SOCKS ด้วย NetCat (nc) ใน ~ / .ssh / config ของคุณคุณเพียงแค่เพิ่มสองบรรทัดบรรทัดที่ระบุว่าโฮสต์ใดที่คุณต้องการใช้พร็อกซีและบรรทัดที่บอกวิธีการเชื่อมต่อผ่าน nc ชอบมาก

~ / .ssh / config: (ทดสอบบน OSX ควรทำงานบน Linux ด้วย)

Host 10.*
    ProxyCommand nc -X 5 -x PROXY_HOST:1080 %h %p

แทนที่ "PROXY_HOST" ด้วยสิ่งที่ถูกต้องสำหรับการตั้งค่าของคุณ

สิ่งนี้ทำให้ ssh แทนการเปิดการเชื่อมต่อ TCP ไปยังโฮสต์เป้าหมายโดยตรง (ในกรณีนี้สิ่งที่ขึ้นต้นด้วย "10" - สามารถเป็น IP หรือชื่อโฮสต์) ให้รันคำสั่ง "nc" ด้วยตัวเลือกที่ระบุ สร้างการเชื่อมต่อ TCP และ SSH ทำส่วนที่เหลือจากที่นั่น มีประโยชน์มาก

"5" เป็นรุ่น SOCKS "1080" เป็นพอร์ตพร็อกซี "% h" SSH แทนที่ด้วยโฮสต์ที่คุณพิมพ์บนบรรทัดคำสั่งและ "% p" SSH แทนที่ด้วยพอร์ตจากบรรทัดคำสั่ง (หรือค่าเริ่มต้น 22)


7

ใช่สิ่งนี้สามารถทำได้ ดูเว็บไซต์นี้สำหรับตัวอย่างหนึ่ง

โดยทั่วไปคุณใช้โลคัลโลคัลของคุณ~/.ssh/config(หรือ/etc/ssh/ssh_configถ้าคุณต้องการให้เป็นทั้งระบบ) เพื่อระบุProxyCommandคำสั่งสำหรับโฮสต์ที่คุณต้องผ่านพร็อกซีเพื่อไปที่

คุณสามารถใช้nc(ซึ่งมาพร้อมกับ OS X) แทนซอฟต์แวร์ที่พวกเขากล่าวถึงในเว็บไซต์นั้น

อ้างถึงssh_config(5)และnc(1)หน้าคนสำหรับข้อมูลเพิ่มเติม


1
น่าเสียดายที่เพจที่คุณลิงก์ล้าสมัยและลิงก์ไปยังไบนารีเวอร์ชันที่ปะแก้แล้วนั้นเป็นข้อผิดพลาด - ข้อผิดพลาด 404
Bart B

1
โอ้นี่น่าอายแค่ไหน - ฉันพบลิงค์ไปยังคำสั่ง proxy ที่ใช้งานได้ซึ่งยังคงคอมไพล์ใน OS X 10.7 Lion และยังใช้งานได้ด้วย BLOG ของฉันเอง! ในการป้องกันของฉันโพสต์คือ 6 ปี แต่ก็ยัง คำแนะนำการใช้งานที่นี่: bartbusschots.ie/blog/?p=184
Bart B

2
@BartB "สิ่งที่คุณเขียนมากกว่าหนึ่งสัปดาห์ที่ผ่านมาอาจถูกเขียนโดยคนอื่นด้วย" - มันคือสัจพจน์ของการเขียนโปรแกรม แต่มันก็เป็นจริงสำหรับ sysadmins และบล็อกเกอร์ด้วย
voretaq7

3

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

ssh -o "ProxyCommand nc -X 5 -x myproxy:myproxyport %h %p" myuser@cantaccessthiswithoutproxy.com
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.