อุโมงค์ ssh ที่ซ้อนกัน


0

ฉันต้องการเชื่อมต่อกับพอร์ตของเซิร์ฟเวอร์ผ่านเซิร์ฟเวอร์อื่น

mypc --> host 1 port 1431--> final host port 8080

แต่ในการเชื่อมต่อกับเซิร์ฟเวอร์ตัวแรกฉันต้องส่งข้อมูลประจำตัวของฉันและเพื่อเชื่อมต่อกับเซิร์ฟเวอร์ตัวที่สองฉันต้องส่งคีย์ส่วนตัว ดังนั้นฉันลองทำสิ่งนี้:

ssh -L8080:IP2:8080 -i private-key user2@IP2 -R 8080:localhost:8080 user1@host1 -L1431:host1:1431

ในกรณีที่IP2เป็น IP เอกชน

แต่ฉันไม่ประสบความสำเร็จ ฉันเป็นคนเริ่มต้นในโดเมนนี้ดังนั้นฉันจึงไม่เข้าใจวิธีการใช้งาน ฉันอ่านบทเรียนบางอย่าง แต่มันไม่ทำงาน

ขอบคุณ!


คุณต้องการแมป 'โฮสต์สุดท้ายพอร์ต 8080' ที่ไหน จะให้บริการแบบสาธารณะในชื่อ 'host-1, พอร์ต 1431' หรือไม่ จะสามารถใช้ได้กับ localhost ที่พอร์ต 8080? โดย IP ส่วนตัว - คุณหมายถึงว่าเป็นเครือข่ายของ IP ที่ไม่ใช่แบบสาธารณะที่อยู่เบื้องหลังโฮสต์สาธารณะ -1
Marek Rost

1. ฉันต้องการแมปพอร์ต 8080 ในพีซีในพื้นที่ของฉัน 2. พอร์ต 1431 นั้นมีให้บริการแบบสาธารณะและ 8080 ด้วย 3. ใช่เป็น IP ที่ไม่ใช่แบบสาธารณะหลังโฮสต์ -1 ที่เปิดเผยต่อสาธารณะ
ฤดูหนาว

ในกรณีที่คุณไม่ควรจำเป็นที่จะต้องเข้าสู่ระบบเข้าสู่โฮสต์สุดท้าย - host1 แล้วสามารถเข้าถึงสุดท้ายของโฮสต์พอร์ต 8080 ssh -N -L 8080:final-host-ip:8080 user1@host1ใช้นี้ ทำไมถึงระบุพอร์ต 1431 นั่นคือพอร์ตที่ SSH ทำงานหรือไม่
Marek Rost

คำตอบ:


1

ในที่สุดฉันก็ใช้สิ่งนี้ตามความคิดเห็นของ @Marek Rost และใช้งานได้

ssh user@host1 -L8080:host2:8080 -i private-key

0

ใช้

ssh -J user1@host1:1431 -i private-key -p 8080 user2@IP2

หรือถ้าคุณมีไคลเอนต์ OpenSSH ที่เก่ากว่า:

ssh -oProxyCommand="ssh -p 1431 -i private-key user1@host1" -p 8080 user2@IP2

ฉันไม่รู้ว่าทำไม แต่ ssh บอกฉันว่า-Jไม่ใช่ตัวเลือกที่ถูกต้อง
ฤดูหนาว

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