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.
En utilisant systemd
ceci peut être fait (exemple autossh
créé pour mysql
access):
Créez un fichier systemd en utilisant nano
ou vim
ou l'éditeur approprié de votre choix:
Sudo vim /etc/systemd/system/autossh-mysql-tunnel.service
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
Rechargez systemd
name__:
Sudo systemctl daemon-reload
Démarrez le service Autossh
name__:
Sudo systemctl start autossh-mysql-tunnel.service
Activer à boot
name__:
Sudo systemctl enable autossh-mysql-tunnel.service
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 parsystemd
name__.
Donc, dans le cas de systemd
name__, 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