Вот такая конфигурация с одного из серверов, которые я обслуживаю. В конфигурации используется служба systemd, созданная на стороне клиента. Также он использует автосш
, поэтому в качестве первого шага нам нужно установить его.
sudo apt установить autossh
Затем создайте файл конфигурации SSH.
судо нано /etc/ssh/ssh_config.d/auto-ssh-systemd-hosts.conf
Хост reverse.server-name.com
Имя хоста 192.168.1.199
IdentityFile /root/.ssh/имя-сервера.com/id_rsa
Пользователь Пользователь
Порт 2222
Локальный Форвард 22 127.0.0.1:2222
Удаленный Форвард 2222 127.0.0.1:22
Порты шлюза да
Сжатие да
- Обратите внимание, что ключ SSH принадлежит пользователю root, поскольку он будет владельцем службы.
- Не забудьте изменить параметры Хозяин, Имя хоста и 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 KILL autossh
Перезапустить = всегда
Рестартсек=3
[Установить]
WantedBy=многопользовательская.цель
- Заменять имя-сервера.com и reverse.server-name.com с реальными значениями.
Теперь включите и запустите службу.
sudo systemctl демон-перезагрузка
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
Служба будет перезапущена автоматически, если она зависнет. С другой стороны автосш
будет поддерживать его жизнь намного дольше, чем ssh
, потому что он также автоматически обнаруживает сбои соединения.
Использованная литература:
После запуска службы вы сможете:
[email protected]:~$ ssh localhost -p 22 # подключиться к локальной машине
user@local-machine:~$ ssh localhost -p 22 # подключиться к server-name.com
Конечно, вам нужно будет предоставить правильные данные аутентификации командам.