Eu preciso de um script de inicialização que estabeleça uma conexão de túnel reverso para um servidor. Eu criei o seguinte script de início:
#! /bin/sh
### BEGIN INIT INFO
### END INIT INFO
case "$1" in
start)
echo "Starting autossh"
/usr/bin/autossh -M 22222 -o "PubkeyAuthentication=yes" -o "PasswordAuthentication=no" -i /path/to/my.key -R 9999:localhost:22 ubuntu@host
;;
stop)
echo -n "Shutting down autossh"
/usr/bin/killall -KILL autossh
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac
exit 0
O que tem um problema: ele não inicia o processo em segundo plano, caso contrário, ele funciona conforme o esperado. Eu tentei usar o sinalizador -f
e alterei a linha start)
para /usr/bin/autossh -f -M 22222
, mas isso não parece funcionar e estou me perguntando por quê. O que estou fazendo de errado, a man page diz
-f' causes autossh to drop to the background before running ssh.
O que está acontecendo aqui?
Em /var/log/syslog
no servidor, posso ver:
Nov 3 22:01:10 ip-172-31-33-223 systemd[1]: Started Session 1524 of user ubuntu.
com e sem o sinalizador -f
, ou seja, o cliente estabelece uma conexão com host
, mas quando o sinalizador -f
está presente, ele não me permitirá efetuar login por meio do localhost na porta 9999 .... : o