Запустите 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