web-dev-qa-db-fra.com

Démarrer autossh au démarrage du système

Existe-t-il un moyen de démarrer autossh au démarrage, afin qu'il démarre et configure le tunnel ssh avant même qu'un utilisateur se soit connecté? J'amorce Ubuntu sur un terminal, et j'aimerais que le processus autossh démarre automatiquement au démarrage afin que je puisse entrer en ssh.

J'ai essayé d'ajouter la commande à /etc/rc.local, ainsi que de créer un script /etc/init/*.conf. Aucun de ceux-ci ne semble fonctionner.

13
ptf

En utilisant systemdceci peut être fait (exemple autosshcréé pour mysqlaccess):

  1. Créez un fichier systemd en utilisant nanoou vimou l'éditeur approprié de votre choix:

    Sudo vim /etc/systemd/system/autossh-mysql-tunnel.service 
    
  2. Ajoutez le contenu suivant:

    [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 [email protected] -p 1022
    
    [Install]
    WantedBy=multi-user.target
    
  3. Rechargez systemdname__:

    Sudo systemctl daemon-reload
    
  4. Démarrez le service Autosshname__:

    Sudo systemctl start autossh-mysql-tunnel.service
    
  5. Activer à bootname__:

    Sudo systemctl enable autossh-mysql-tunnel.service
    
  6. Vérifier l'état avec:

    Sudo systemctl status autossh-mysql-tunnel
    

Remarque:

Il y a cependant une chose importante à noter à propos de systemd et d'AutoSSH: -f (utilisation en arrière-plan) implique déjà AUTOSSH_GATETIME=0, cependant -f n'est pas pris en charge par systemdname__.

Donc, dans le cas de systemdname__, vous devez utiliser AUTOSSH_GATETIME

La source:

https://www.everythingcli.org/ssh-tunnelling-for-fun-and-profit-autossh/

https://www.freedesktop.org/software/systemd/man/systemd.service.html

17
George Udosen