I found this systemd service file to start autossh to keep up a ssh tunnel: https://gist.github.com/thomasfr/9707568
[Unit]
Description=Keeps a tunnel to 'remote.example.com' open
After=network.target
[Service]
User=autossh
# -p [PORT]
# -l [user]
# -M 0 --> no monitoring
# -N Just open the connection and do nothing (not interactive)
# LOCALPORT:IP_ON_EXAMPLE_COM:PORT_ON_EXAMPLE_COM
ExecStart=/usr/bin/autossh -M 0 -N -q -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" -p 22 -l autossh remote.example.com -L 7474:127.0.0.1:7474 -i /home/autossh/.ssh/id_rsa
[Install]
WantedBy=multi-user.target
Is there a way to configure systemd to start several tunnels in one service.
I don't want to create N system service files, since I want to avoid copy+paste.
All service files would be identical except "remote.example.com" would be replace with other host names.
1.5 year later ...
I asked this question roughly 1.5 year ago.
My mind has changed. Yes, it's nice, that you can do this with systemd, but I will use configuration-management in the future.
Why should systemd implement a template language and substitute %h? .. I think it makes no sense.
Several months later I think this looping and templating should be solved on a different level. I would use Ansible or TerraForm for this now.