ฉันรู้วิธีการเชื่อมต่อ 'กับ' พอร์ตที่แน่นอนเมื่อกำลังทำ
ssh user@remotehostip -p XXX
แต่มีวิธีการสร้าง ssh 'กับ' พอร์ตที่แน่นอนหรือไม่
ฉันหมายถึงมีวิธีระบุพอร์ตที่คอมพิวเตอร์ในพื้นที่ของฉันจะใช้หรือไม่
ฉันรู้วิธีการเชื่อมต่อ 'กับ' พอร์ตที่แน่นอนเมื่อกำลังทำ
ssh user@remotehostip -p XXX
แต่มีวิธีการสร้าง ssh 'กับ' พอร์ตที่แน่นอนหรือไม่
ฉันหมายถึงมีวิธีระบุพอร์ตที่คอมพิวเตอร์ในพื้นที่ของฉันจะใช้หรือไม่
คำตอบ:
ที่เป็นไปไม่ได้ง่าย วิธีการดังกล่าวสามารถทำได้ขึ้นอยู่กับตำแหน่งที่จะเห็นพอร์ตต้นทาง: ภายในเครื่องด้วยหรือเพียงพอหากเป็นพอร์ตที่ถูกต้องจากมุมมองของเครือข่ายภายนอก
คุณสามารถเรียกใช้ไคลเอ็นต์ SSH ในคอนเทนเนอร์ LXC ฉันไม่เคยทำอย่างนั้นฉันจึงไม่สามารถอธิบายให้คุณอย่างละเอียดได้ แต่คุณสร้างอินเทอร์เฟซเครือข่ายเสมือนและแนบกับคอนเทนเนอร์นี้เพื่อที่ssh
จะใช้อินเทอร์เฟซนี้เนื่องจากเป็นอินเทอร์เฟซ (ภายนอก) เท่านั้นที่เห็น
ในระบบโฮสต์คุณควรตรวจสอบว่าแพ็คเก็ตมาจากอินเตอร์เฟสนี้ ดังนั้นคุณสามารถใช้ NAT (SNAT) ของ Netfilter เพื่อเขียนที่อยู่แหล่งใหม่ด้วยสิ่งต่อไปนี้:
iptables -t nat -A POSTROUTING -o vnet0 -p tcp --dport 22 -j SNAT --to-source :1234
แน่นอนว่าวิธีนี้ใช้ไม่ได้ (หรือซับซ้อนมากขึ้น) หากคุณเชื่อมต่อกับพอร์ตที่แตกต่างจาก 22
sshfs
และมีคนบอกว่ามันทำงานกับคำสั่งนี้ แต่ฉันไม่เชื่อ หากคุณพบคำตอบโปรดแจ้งให้เราทราบ :)!
ไวยากรณ์คำสั่งที่คุณกำลังค้นหาอาจเป็นแบบนี้ ssh -p XXX user @ remotehostip คุณต้องเปลี่ยนคำสั่งของตัวเลือก ลองตอนนี้มันใช้งานได้สำหรับฉัน ด้วยความเคารพ.
วิธีแก้ปัญหาง่ายๆนี้หากคุณส่งต่อพอร์ตผ่านเราเตอร์ของคุณคือการตั้งค่าพอร์ตขาเข้าเป็นสิ่งที่คุณต้องการและพอร์ตในท้องถิ่นเป็น 22 เครื่องของคุณจะยังคงทำการเชื่อมต่อ ssh ในวันที่ 22 เหมือนปกติ คุณจะใช้พอร์ตขาเข้าของคุณ หากคุณเพียงแค่พยายามหยุดบอทจากการทุบเครื่องของคุณในวันที่ 22 สิ่งนี้ควรทำ
นี่อาจไม่ช่วยคุณได้ แต่ฉันคิดว่าหลายคนจะจบที่นี่ด้วยเหตุนี้
ฉันเสนอตัวเลือก -Z portnum ...
แหล่งที่มาที่นี่: https://github.com/Zibri/openssh-portable
และนี่คือคำขอการดึง: https://github.com/openssh/openssh-portable/pull/130