วิธีตั้งค่าการเปลี่ยนเส้นทางพอร์ตหลังจากเปิดการเชื่อมต่อ ssh แล้ว


13

ฉันใช้ openssh กับทั้งลูกค้าและเซิร์ฟเวอร์ ฉันรู้ว่าฉันสามารถเรียกใช้ssh -Lหรือssh -Rตั้งค่าการเปลี่ยนเส้นทางพอร์ตผ่าน ssh อย่างไรก็ตามเนื่องจากเป็นพารามิเตอร์บรรทัดคำสั่งการเปลี่ยนเส้นทางดังกล่าวจะต้องเขียนก่อนที่การเชื่อมต่อจะเปิดขึ้น

ฉันสามารถตั้งค่าการเปลี่ยนเส้นทางพอร์ตแบบทันทีโดยใช้ไคลเอนต์บรรทัดคำสั่ง ssh ได้หรือไม่

เมื่อฉันใช้PuTTYไคลเอนต์ ssh ฉันสามารถตั้งค่าการเปลี่ยนเส้นทางพอร์ตแบบโต้ตอบได้ในขณะที่การเชื่อมต่อนั้นเปิดขึ้นโดยไม่ปล่อยหรือไม่เชื่อมต่อใหม่ดังนั้นฉันจึงรู้ว่าเป็นไปได้ทางเทคนิค

คำตอบ:


24

หากคุณกำลังใช้บรรทัดคำสั่ง SSH และคุณยังไม่ได้ปิดคุณสมบัติหลบหนีคุณสามารถพิมพ์~Cหลังจากบรรทัดใหม่เพื่อเปิดมินิคอนโซลบนไคลเอนต์ ssh จากนั้นพิมพ์-L port:host:portหรือ-R port:host:portหรือ-D portตามที่คุณต้องการในบรรทัดคำสั่งเพื่อเพิ่มการเปลี่ยนเส้นทางหรือ-KR portเพื่อลบการเปลี่ยนเส้นทาง

วิธีที่มีความยืดหยุ่นมากขึ้นในการตั้งค่าการเปลี่ยนเส้นทางโดยไม่ต้องทำการตรวจสอบซ้ำอีกครั้งคือการเริ่มต้นไคลเอ็นต์ ssh แรกเป็นมาสเตอร์ ( -Mหรือ-o ControlMaster=auto) และไคลเอนต์ที่ตามมาเป็นทาส ( -Sหรือ-o ControlMaster=auto) อุโมงค์ทาสผ่านการเชื่อมต่อที่สร้างขึ้นโดยต้นแบบ คุณอาจจะต้องตั้งค่าControlPathในบรรทัดคำสั่งหรือในของคุณ~/.ssh/config; ดูคำอธิบายของตัวเลือกในssh_configman pageสำหรับข้อมูลเพิ่มเติม


ในกรณีที่ทุกคน~C escape not available to multiplexex sessionsประสบปัญหาอย่างที่ฉันเพิ่งทำตอนนี้อย่าไปตามหาการเชื่อมต่อหลักของคุณ ให้เพิ่ม-O forwardไปยังคำสั่งการส่งต่อพอร์ต ssh ของคุณแทนssh -O forward -nfL 1234:whatever:1234 theserverและจะใช้งานได้
Patrick
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.