คำตอบนี้ขึ้นอยู่กับคำตอบที่ได้รับการยอมรับ แต่การเพิ่มรายละเอียดที่ทำให้ฉันสามารถทำได้ ฉันขอโทษสำหรับคำอธิบายของคนเดินเท้าเนื่องจากนี่ไม่ใช่ความเชี่ยวชาญของฉัน
สมมติว่าคุณมีคอมพิวเตอร์สองเครื่องและA
B
คุณต้องการssh
จากA
ถึงB
และคุณไม่สามารถทำการส่งต่อพอร์ตใด ๆ ในเราเตอร์ที่เชื่อมต่อกับพวกเขา
ในฐานะที่เป็นรัฐตอบรับที่ยอมรับคุณต้องมีเซิร์ฟเวอร์S
ในการทำสิ่งนี้: ในคอมพิวเตอร์B
คุณจะอนุญาตให้มีssh
การเชื่อมต่อที่มาจากS
; และจากคอมพิวเตอร์ของA
คุณจะเข้าถึงอุโมงค์ว่าในการเข้าถึงS
B
แต่คุณจะรับเซิร์ฟเวอร์นั้นได้S
อย่างไร ฉันพบserveo
(ลิงก์: https://serveo.net/ ) มันใช้ง่ายมาก คุณไม่ต้องติดตั้งอะไรหรือลงทะเบียนและมันฟรี ตามเว็บไซต์ขั้นตอนในการติดตามคือ:
B
คิดว่านามแฝงสำหรับคอมพิวเตอร์ ตัวอย่างเช่นcomputer_B_alias
.
ในเครื่องคอมพิวเตอร์ของรันB
ssh -R computer_B_alias:22:localhost:22 serveo.net
ตอนนี้คุณสามารถเข้าถึงคอมพิวเตอร์B
จากคอมพิวเตอร์A
โดยการดำเนินการต่อไปในเครื่องคอมพิวเตอร์A
: ssh -J serveo.net user@computer_B_alias
ที่คุณต้องทดแทนโดยใช้ชื่อของผู้ใช้ในคอมพิวเตอร์user
B
PS: แน่นอนคุณทำให้จุดที่ 2 B
เป็นงานอัตโนมัติเมื่อเริ่มต้นคอมพิวเตอร์ของคุณ
PSS: ก่อนที่จะลองสิ่งนี้ตรวจสอบให้แน่ใจว่าssh
ได้ติดตั้งในคอมพิวเตอร์ทั้งสอง สำหรับ Ubuntu sudo apt-get install ssh
จะทำงาน