นี่คือการกำหนดค่าดังกล่าวจากหนึ่งในเซิร์ฟเวอร์ที่ฉันดูแล การกำหนดค่าใช้บริการ systemd ซึ่งสร้างขึ้นที่ฝั่งไคลเอนต์ นอกจากนี้ยังใช้ อัตโนมัติ
ดังนั้นในขั้นตอนแรกเราต้องติดตั้ง
sudo apt ติดตั้ง autossh
จากนั้นสร้างไฟล์กำหนดค่า SSH
sudo nano /etc/ssh/ssh_config.d/auto-ssh-systemd-hosts.conf
โฮสต์ reverse.server-name.com
ชื่อโฮสต์ 192.168.1.199
IdentityFile /root/.ssh/server-name.com/id_rsa
ผู้ใช้ ผู้ใช้
พอร์ต 2222
LocalForward 22 127.0.0.1:2222
RemoteForward 2222 127.0.0.1:22
GatewayPort ใช่
การบีบอัดใช่
- โปรดทราบว่าคีย์ SSH เป็นของผู้ใช้รูท เนื่องจากคีย์ดังกล่าวจะเป็นเจ้าของบริการ
- อย่าลืมเปลี่ยนพารามิเตอร์ เจ้าภาพ, ชื่อโฮสต์ และ IdentityFile.
- ต่อไปนี้จะถือว่าเซิร์ฟเวอร์ ssh ที่ทั้งสองระบบฟังพอร์ตที่กำหนดเอง 2222
ในขั้นตอนนี้ คุณควรจะสามารถ:
sudo ssh reverse.server-name.com # หรือ
sudo autossh reverse.server-name.com
ในที่สุดก็สร้างบริการ
sudo nano /etc/systemd/system/autossh-reverse-server-name.service
[หน่วย]
Description=เปิดอุโมงค์ SSH ไปที่ 'server-name.com'
After=network-online.target
[บริการ]
ผู้ใช้ = ราก
ExecStart=/usr/bin/autossh -M 0 -N -q -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" reverse.server-name.com
ExecStop=/usr/bin/killall -s ฆ่า autossh
เริ่มใหม่ = เสมอ
รีสตาร์ทวินาที = 3
[ติดตั้ง]
WantedBy=multi-user.target
- แทนที่ เซิฟเวอร์-name.com และ reverse.server-name.com ด้วยค่าที่แท้จริง
ตอนนี้เปิดใช้งานและเริ่มบริการ
sudo systemctl daemon โหลดซ้ำ
sudo systemctl เปิดใช้งาน autossh-reverse-server-name.service
sudo systemctl เริ่ม autossh-reverse-server-name.service
เพื่อหยุดและปิดบริการ
sudo systemctl หยุด autossh-reverse-server-name.service
sudo systemctl ปิดใช้งาน autossh-reverse-server-name.service
คุณสามารถรับสถานะหรือเริ่มบริการใหม่โดยใช้คำสั่งต่อไปนี้
sudo systemctl สถานะ autossh-reverse-server-name.service
sudo systemctl รีสตาร์ท autossh-reverse-server-name.service
บริการจะเริ่มต้นใหม่โดยอัตโนมัติหากค้าง ในทางกลับกัน อัตโนมัติ
จะรักษาชีวิตไว้ได้นานกว่า จุ๊ๆ
เนื่องจากยังตรวจพบความล้มเหลวของการเชื่อมต่อโดยอัตโนมัติอีกด้วย
อ้างอิง:
เมื่อเริ่มบริการแล้ว คุณควรจะสามารถ:
[email protected]:~$ ssh localhost -p 22 # เชื่อมต่อกับเครื่องโลคอล
user@local-machine:~$ ssh localhost -p 22 # เชื่อมต่อกับ server-name.com
แน่นอน คุณจะต้องให้ข้อมูลการรับรองความถูกต้องที่ถูกต้องกับคำสั่ง