Aș prefera să folosesc autossh
pachet pentru un astfel de serviciu. Deci mai întâi instalează-l:
sudo apt update && sudo apt install autossh
Apoi creați o intrare de configurare pentru conexiunea dvs., creând un fișier nou în director /etc/ssh/ssh_config.d/
. Să-i spunem reverse.ssh.www.example.org.conf
. Iată un exemplu:
sudo nano /etc/ssh/ssh_config.d/reverse.ssh.www.example.org.conf
# Acest fișier este încărcat de /etc/ssh/ssh_config
Gazdă inversă.ssh.www.example.org
Nume gazdă www.example.org
IdentityFile /root/.ssh/your_passles_id_rsa
Mamă utilizator
Portul 22
RemoteForward 19123 127.0.0.1:22
GatewayPorts da
Compresia da
- Rețineți că cheia SSH este posesia utilizatorului root care va gestiona conexiunea de către serviciul nostru.
- Ultimele două opțiuni nu sunt obligatorii.
În sfârșit creați serviciul:
sudo nano /etc/systemd/system/reverse-autossh-www-example-org.service
[Unitate]
Description=Păstrează deschis un tunel rezident către www.example.org
#After=network.target
După=network-online.target
[Serviciu]
Utilizator=rădăcină
ExecStart=/usr/bin/autossh -M 0 -N -q -o „ServerAliveInterval 60” -o „ServerAliveCountMax 3” reverse.ssh.www.example.org
ExecStop=/usr/bin/killall -s KILL autossh
#ExecStop=/bin/kill $MAINPID
Restart=intotdeauna
RestartSec=3
#Environment=AUTOSSH_GATETIME=0
[Instalare]
WantedBy=multi-user.target
Activați și porniți serviciul:
sudo systemctl daemon-reload
sudo systemctl enable reverse-autossh-www-example-org.service
sudo systemctl start reverse-autossh-www-example-org.service
Am folosit această configurație în ultimii doi ani pentru a rezolva o sarcină similară - funcționează ca un farmec. Cu toate acestea, iată câteva referințe: