Запустіть автоматичне обчислення при запуску системи


16

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

Я намагався додати команду до /etc/rc.local, а також створити /etc/init/*.confсценарій. Жоден із них, здається, не працює.


Яка версія Ubuntu це?
Джордж Удосен

@George 16.04 LTS.
ptf

Відповіді:


21

Використовуючи systemdце можна зробити (зразок, autosshстворений для mysqlдоступу):

  1. Створіть файл Systemd з допомогою 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

Джерело


Спасибі! Я це намагаюся, але коли біжу sudo service reverse-ssh-tunnel.service status, отримую Loaded: not-found (Reason: No such file or directory). Досліджуємо це зараз :)
ptf

будь ласка, sudo systemctl status reverse-ssh-tunnelнеsudo service reverse-ssh-tunnel.service status
Джордж Удосен

2
Я вважаю, ви маєте на увазіautossh -i /home/<user>/.ssh/id_rsa -R 22222:localhost:22 <user>@<remote_host>
Джордж Удосен

2
Мені потрібно було також додати -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no. Можливо, мені просто потрібна одна з них, не перевіряла їх окремо. Знайшли це тут: stackoverflow.com/a/24689061/1211119 . Однак, переглядаючи екран входу tty1 (я завантажуюся до терміналу), служба ще не створила тунель. Якщо я ввійду, сервіс запускається.
ptf

2
Іноді хочеться запустити в іншому користувальницькому контексті. Для цього: додайте User=usernameдо [Service]розділу в системному файлі.
friederbluemle
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.