—
* Локальный сервер — Ubuntu, где будет работать autossh. * Удалённый сервер — 212.158.1.1, SSH‑порт по умолчанию 22. * Требуемый туннель: -R 8004\:localhost:8004 (открыть 8004 на удалённой стороне, прокинуть к локальному 8004).
—
sudo adduser --system --group --home /home/autossh autossh
* создаётся класс «system» без пароля, логин только по ключу.
—
sudo -u autossh -H bash -c ' mkdir -p ~/.ssh && chmod 700 ~/.ssh ssh-keygen -t ed25519 -f ~/.ssh/id\_ed25519 -N "" '
* будут файлы id\_ed25519 и id\_ed25519.pub.
—
sudo -u autossh ssh-copy-id -i /home/autossh/.ssh/id\_ed25519.pub autossh\@212.158.1.1
* на удалённой стороне появится */home/autossh/.ssh/authorized\_keys*. * если пользователя autossh там нет — создайте так же и убедитесь, что он может слушать порт 8004.
—
sudo -u autossh ssh -i /home/autossh/.ssh/id_ed25519 -R 8004\:localhost:8004 autossh\@212.158.1.1
* подключение должно пройти без пароля. * проверяем на удалёнке:
<code bash>
ss -ltnp | grep 8004 </code>
—
# /etc/systemd/system/autossh-tunnel.service [Unit] Description=AutoSSH Tunnel :8004→212.158.1.1 After=network-online.target Wants=network-online.target [Service] User=autossh Environment="AUTOSSH_GATETIME=0" ExecStart=/usr/bin/autossh \ -M 20000 \ -N \ -o "ServerAliveInterval=60" \ -o "ServerAliveCountMax=3" \ -o "ExitOnForwardFailure=yes" \ -i /home/autossh/.ssh/id_ed25519 \ -R 8004:localhost:8004 autossh@212.158.1.1 Restart=always RestartSec=5 PrivateTmp=true ProtectSystem=full [Install] WantedBy=multi-user.target
—
sudo systemctl daemon-reload sudo systemctl enable --now autossh-tunnel.service
==== Проверяем статус ====
systemctl status autossh-tunnel.service journalctl -u autossh-tunnel.service -f
—
* Чтобы порт 8004 был доступен всем интерфейсам, в */etc/ssh/sshd_config* пропишите:
GatewayPorts yes
затем `sudo systemctl reload sshd`.
* Порты < 1024 требуют *root* или CAP_NET_BIND_SERVICE — здесь не нужно.
—
* Локальный: ничего открывать не надо. * Удалённый: разрешаем входящее TCP/8004:
<code bash>
sudo ufw allow 8004/tcp </code>
—
Перегенерируйте пару и повторите шаг 3.
—
Сервис работает от непривилегированного пользователя, автоматически восстанавливает туннель при разрывах.