Запустите autossh при запуске системы

Есть ли способ начать autossh при запуске, чтобы он запускал и настраивал туннель ssh еще до того, как пользователь вошел в систему? Я загружаю Ubuntu в терминал, и мне бы хотелось, чтобы autossh Процесс запускается автоматически при запуске, поэтому я могу ssh в.

Я пытался добавить команду /etc/rc.local, а также для создания /etc/init/*.conf скрипт. Кажется, ничего из этого не работает.

2 ответа

С помощью systemd это можно сделать (образец autossh предназначен для mysql доступ):

  1. Создайте системный файл, используя nano или же vim или соответствующий редактор по выбору:

    sudo vim /etc/systemd/system/autossh-mysql-tunnel.service 
    
  2. Добавьте следующее содержание:

    [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
    
  3. перезагружать systemd:

    sudo systemctl daemon-reload
    
  4. Начать Autossh оказание услуг:

    sudo systemctl start autossh-mysql-tunnel.service
    
  5. Включить в boot:

    sudo systemctl enable autossh-mysql-tunnel.service
    
  6. Проверьте статус с помощью:

    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
Другие вопросы по тегам