Запустите autossh при запуске системы
Есть ли способ начать autossh
при запуске, чтобы он запускал и настраивал туннель ssh еще до того, как пользователь вошел в систему? Я загружаю Ubuntu в терминал, и мне бы хотелось, чтобы autossh
Процесс запускается автоматически при запуске, поэтому я могу ssh в.
Я пытался добавить команду /etc/rc.local
, а также для создания /etc/init/*.conf
скрипт. Кажется, ничего из этого не работает.
2 ответа
С помощью systemd
это можно сделать (образец autossh
предназначен для mysql
доступ):
Создайте системный файл, используя
nano
или жеvim
или соответствующий редактор по выбору:sudo vim /etc/systemd/system/autossh-mysql-tunnel.service
Добавьте следующее содержание:
[Unit] Description=AutoSSH tunnel service everythingcli MySQL on local port 5000 After=network.target [Service] Environment="AUTOSSH_GATETIME=0" ExecStart=/usr/bin/autossh -M 0 -o "ServerAliveInterval 30" -o "ServerAliveCountMax 3" -NL 5000:localhost:3306 cytopia@everythingcli.org -p 1022 [Install] WantedBy=multi-user.target
перезагружать
systemd
:sudo systemctl daemon-reload
Начать
Autossh
оказание услуг:sudo systemctl start autossh-mysql-tunnel.service
Включить в
boot
:sudo systemctl enable autossh-mysql-tunnel.service
Проверьте статус с помощью:
sudo systemctl status autossh-mysql-tunnel
Замечания:
Однако следует отметить одну важную вещь, касающуюся systemd и AutoSSH: -f (использование в фоновом режиме) уже подразумевает
AUTOSSH_GATETIME=0
, тем не мение-f
не поддерживаетсяsystemd
,
Так что в случае systemd
вам нужно использовать AUTOSSH_GATETIME
Источник:
https://www.everythingcli.org/ssh-tunnelling-for-fun-and-profit-autossh/
https://www.freedesktop.org/software/systemd/man/systemd.service.html
Я добавил к команде, чтобы заставить это работать.
-N
говорит autossh подключиться и ничего не делать. Без этого мой сеанс ssh входил в систему, а затем сразу же закрывался. Я также настроил его для использования локального пользователя вместе с
.ssh/config
файл (
/home/myuser/.ssh/config
), который содержит мои правила туннеля.
# cat /etc/systemd/system/autossh.service
[Unit]
Description=AutoSSH service
After=network.target
[Service]
Environment="AUTOSSH_GATETIME=0"
User=myuser
Group=myuser
ExecStart=/usr/bin/autossh -N -M 0 -o "ServerAliveInterval 30" -o "ServerAliveCountMax 3" -i /home/myuser/.ssh/id_ecdsa_np remoteid@remote
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target