Dzwonię do ssh (OpenSSH) z OSX / Linux-C ++ - aplikacji przez fork / exec, aby utworzyć dynamiczne przekierowanie portów. Robi się to za pomocą trybu wsadowego (-o BatchMode = yes) i klucza prywatnego, który jest dostarczany do ssh (-i Option). Samo wywołanie SSH nie otwiera powłoki (opcja -N).
To jest mój pełny SSH-Call:
ssh -N -D 9000 -o BatchMode=yes -i /path/to/private-key user@host
Chciałbym kontynuować moją aplikację tak szybko, jak to możliwe, i muszę się dowiedzieć, czy ssh udało się utworzyć kanał. Sam SSH powraca tylko wtedy, gdy ma problem.
Czy istnieje możliwość wykrycia udanego przekierowania portów?
Oczywiście mogę poczekać, aż port zostanie otwarty przez SSH, ale szukam bardziej eleganckiego rozwiązania. Innym rozwiązaniem jest sprawdzenie Logu SSH (-v) czekającego na „Wprowadzanie interaktywnej sesji”, ale brzmi to dla mnie mało przenośnie.