[systemd-devel] Setting Up SSH Tunnels

CACook at Quantum-Sci.com CACook at Quantum-Sci.com
Fri Jul 5 10:16:46 PDT 2013


For some years I've set up reverse SSH tunnels with a script, but when 
the tunnels go down they do not recover.  I'd like to start and stop the 
tunnels using systemd.

A typical command looks like this:
  /usr/bin/ssh -f -l sleeper -i /home/sleeper/.ssh/id_ecdsa -2 -4 -c 
aes256-ctr,aes128-ctr -L 3128:localhost:3128 droog sleep 365d

I tried invoking my script with a .service file, but it doesn't keep the 
tunnels alive. (sometimes they die with "broken pipe")  And it doesn't 
re-establish the tunnels on wake from sleep.

This is my .service file:
# sshdroog.service

[Unit]
Description= reverse SSH tunnels
Before=rc.local.service
After=network.target sockets.target syslog.target

[Service]
# Do a single job and then exit (Can have multiple ExecStarts):
Type=oneshot
# For oneshot, so that systemd still considers the service as active 
after the process has exited:
RemainAfterExit=yes
ExecStart=/usr/local/bin/sshcygnus
ExecStop=/bin/kill -15 $MAINPID
Restart=always
RestartSec=2
TimeoutSec=60
# Errors in /var/log/messages
systemd.log_level=debug
#Type=notify
#StandardError=syslog
#NotifyAccess=main

[Install]
WantedBy=multi-user.target




More information about the systemd-devel mailing list