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