Então, vejo duas perguntas aqui: 1) Como esperar que o túnel esteja realmente ativo, ou como ele está realmente ativo. 2) Se existe alguma maneira padrão de configurar um túnel ssh no Fedora.
Aproximadamente 1): eu pessoalmente apenas usaria algo como:
timeout=2 # Wait for two seconds for a reply.
ip=192.168.0.1 # Use IP address assigned to tunnel endpoint.
while ! ping -W "$timeout" -c 1 "$ip" &>/dev/null; do
echo "Waiting for tunnel to be up..."
sleep 0.5
done
echo "Tunnel is up."
Você pode ficar mais chique usando um for
loop com um número configurado de tentativas, ou passar algo como -I tun0
para o comando ping para forçar o uso do dispositivo tun.
Uma razão pela qual eu prefiro essa abordagem é que o fato de ter o próprio túnel não significa necessariamente que a comunicação irá acontecer. Poderia haver perda de pacotes, regras de iptables, erros de configuração de rota, ... Eu tomaria cuidado para garantir que o script fosse eliminado se fosse interrompido e garantir que todos os comandos que exigem o túnel tenham uma estratégia de tempo limite / nova tentativa.
Cerca de 2): Não conheço nenhum mecanismo pronto para configurar túneis ssh em qualquer distribuição. Isso não significa que eles não existam. No passado, eu usei autossh .