Score:1

จะเปลี่ยนเส้นทางไปยังเซิร์ฟเวอร์ช่องสัญญาณย้อนกลับด้วยพอร์ตอื่นได้อย่างไร

ธง jp

ติดตั้ง:
เซิร์ฟเวอร์ A (โฮสต์ในเครือข่ายส่วนตัว ต้องเข้าถึง VPN)
เซิร์ฟเวอร์ B (โฮสต์สาธารณะ)
เซิร์ฟเวอร์ C (คุณสามารถสันนิษฐานได้ว่าเป็น macbook ของฉันเอง)

ฉันใช้ อัตโนมัติ เพื่อตั้งค่าการย้อนกลับช่องสัญญาณของฉันที่เซิร์ฟเวอร์ A
ด้วยคำสั่งนี้ autossh -f -T -M 20002 -o "ServerAliveInterval 10" -o "ServerAliveCountMax 2" -N -R 19999:localhost:22 user@server_b

จากนั้นในเซิร์ฟเวอร์ B ของฉัน
ฉันสามารถวิ่งได้ ssh localhost -p 199999 เพื่อเชื่อมต่อเซิร์ฟเวอร์ของฉัน A.
เซิร์ฟเวอร์ B ยังเปิดใช้งานพอร์ต ssh สำหรับ 22 และ 2022 ที่ /etc/ssh/sshd_config

คำชี้แจงปัญหา:
ฉันจะใช้คำสั่งได้อย่างไร ssh user@server_b -p 2022 ที่ เซิร์ฟเวอร์ ค เพื่อเปลี่ยนเส้นทางการเข้าถึง เซิร์ฟเวอร์ ก อุโมงค์จาก เซิร์ฟเวอร์ B?

ภาพใหญ่
macbook -- ssh (พอร์ต 2022) --> เซิร์ฟเวอร์ B -- เปลี่ยนเส้นทาง ssh ---> เซิร์ฟเวอร์ A

**ต้องสามารถทำงาน scp ได้

Marc Vanhoomissen avatar
in flag
สวัสดี คุณช่วยระบุได้ไหมว่า Ubuntu อยู่ที่ไหนในการตั้งค่าของคุณ และคุณมีเวอร์ชันใด
Zi Gang avatar
jp flag
@MarcVanhoomissen อูบุนตู 20
Marc Vanhoomissen avatar
in flag
เซิร์ฟเวอร์ทั้ง 3 เครื่องกำลังใช้งาน Ubuntu หรือไม่
Zi Gang avatar
jp flag
เซิร์ฟเวอร์ A และเซิร์ฟเวอร์ B เป็น ubuntu 20 .. เซิร์ฟเวอร์ C เป็นเพียงตัวอย่าง .. เซิร์ฟเวอร์ C เป็นจุดเริ่มต้นของฉันในการเชื่อมต่อเซิร์ฟเวอร์ A .. เซิร์ฟเวอร์ C เป็นฐานยูนิกซ์ ( macbook )
Score:2
ธง us
  1. ขอแนะนำให้ใช้อุโมงค์ย้อนกลับโดยอัตโนมัติ อัตโนมัติ บริการ.
  2. ฉันแนะนำให้ทำตามขั้นตอนเหล่านี้:
  3. เปลี่ยนคีย์ระหว่างเซิร์ฟเวอร์ที่คุณต้องการอุโมงค์
    • บันทึกเซิร์ฟเวอร์ของคุณ A public_key บนเซิร์ฟเวอร์ B ของคุณ /home/user/.ssh/authorized_keys ไฟล์.
    • ทำการเชื่อมต่อครั้งแรกด้วยตนเองกับ ssh user@serverB และดูว่าการเชื่อมต่อทำงานได้ดี
    • ทำเช่นเดียวกันกับเซิร์ฟเวอร์ C - บันทึกเซิร์ฟเวอร์ B public_key ของคุณบนเซิร์ฟเวอร์ C ของคุณ /home/user/.ssh/authorized_keys ไฟล์.
    • ตรวจสอบการเชื่อมต่อด้วยตนเอง
  4. ตอนนี้คุณต้องเปลี่ยนเส้นทางพอร์ตที่คุณต้องการด้วย อัตโนมัติ - แต่ก่อนอื่นให้ตรวจสอบด้วยตนเอง:
    • เชื่อมต่อกับเซิร์ฟเวอร์ A ของคุณจากพีซีในพื้นที่ของคุณด้วย ssh user@serverA
    • บนเซิร์ฟเวอร์ของคุณ A shell - port forward the จุ๊ๆ การเชื่อมต่อจากเซิร์ฟเวอร์ A ไปยังเซิร์ฟเวอร์ B ด้วย ssh -R <portX>:localhost:22 user@serverB
    • บนเซิร์ฟเวอร์ B เชลล์ของคุณ - พอร์ตฟอร์เวิร์ด เซิร์ฟเวอร์A จุ๊ๆ อุโมงค์ด้วย ssh -R <portY>:localhost:<portX> user@serverC.
    • ตอนนี้เปิดเทอร์มินัลอื่นบนพีซีในพื้นที่ของคุณ (โดยไม่ต้องปิดเทอร์มินัลที่มีอยู่) และลองใช้อุโมงค์เปลี่ยนเส้นทางด้วย ssh user@serverC -p <พอร์ตY> สิ่งนี้ควรเชื่อมต่อคุณกับเซิร์ฟเวอร์ A ผ่านเซิร์ฟเวอร์ C และ B ตามลำดับที่ระบุ
  5. หลังจากที่อุโมงค์ดูเหมือนจะทำงานได้ดีแล้ว เราก็ทำให้กระบวนการนี้เป็นไปโดยอัตโนมัติได้โดยการสร้าง อัตโนมัติ บริการ (นี่คือสิ่งที่ฉันใช้):
[หน่วย]
Description=เปิดอุโมงค์สำหรับ 'VPS' ไว้
After=network-online.target

[บริการ]
ผู้ใช้ = ราก
ExecStart=/usr/bin/autossh -M portZ -i /root/.ssh/id_ed25519 -o "ExitOnForwardFaliure=yes" -o "ServerAliveInterval 30" -o "ServerAliveCountMax 3" -N -R portX:127.0.0.1:22 [email protected] 
สภาพแวดล้อม = AUTOSSH_GATETIME = 0
เริ่มใหม่ = เสมอ
รีสตาร์ทวินาที = 3
StartLimitIntervalSec=0
StartLimitAction=รีบูต
StartLimitBurst=0
[ติดตั้ง]
WantedBy=multi-user.target

ตอนนี้ ถ้าคุณต้องการคัดลอกบางอย่างลงในคอมพิวเตอร์ของคุณด้วย scp จากเซิร์ฟเวอร์ A เพียงรันคำสั่งบนเทอร์มินัลพีซีในเครื่องของคุณ:

  • scp -P <portY> user@serverC:/path/path/ชื่อไฟล์ localpcpath/path/

หมายเหตุ: คำตอบของฉันถือว่าคุณได้สร้างไว้แล้ว คีย์ ssh และนั่นของคุณ sshd_config ไฟล์ได้รับการกำหนดค่าอย่างดี

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา