W najbliższej przyszłości zamierzam wdrożyć wiele maszyn, które będą za routerami. Konfigurowanie dynamicznego DNS na każdym routerze i przekierowaniu portów nie będzie możliwe, więc istnieje sposób, w jaki mogę skonfigurować te maszyny, aby zainicjowały połączenie TCP z moim komputerem, a następnie kazały komputerowi zainicjować połączenie SSH z komputerem zdalnym przez to połączenie?
TO ZNACZY:
COMPUTER A OPENS TCP CONNECTION TO COMPUTER B
COMPUTER B OPENS SSH CONNECTION OVER THE EXISTING TCP CONNECTION TO COMPUTER A
COMPUTER B NOW HAS SSH CONNECTION TO COMPUTER A
Czy to możliwe, a jeśli tak, to jak mogę to zrobić?
Odpowiedzi:
W
/etc/ssh/sshd
na komputerze B zestawie:Z komputera A :
Z komputera B :
Zauważ, że 2222 to arbitralny numer wysokiego portu, który wybrałem. Ten port na komputerze B zostanie następnie tunelowany z powrotem przez połączenie SSH zainicjowane na komputerze A do portu 22. Jeśli masz wiele komputerów, powinieneś użyć innego portu dla każdego komputera.
W twoim przypadku prawdopodobnie będziesz chciał uruchomić to ze skryptu, aby uczynić go demonem i okresowo próbować łączyć się ponownie, jeśli połączenie zostanie zerwane. Prawdopodobnie będziesz potrzebować specjalnego konta z powłoką tylko
/bin/true
na komputerze B do obsługi połączeń przychodzących. Następnie możesz skonfigurować jeden klucz lub wiele kluczy dla każdego urządzenia, które mogą „zadzwonić do domu”.Na komputerze A można znaleźć
-n
,-N
a-T
opcje użyteczne odłączyć go od wejścia lokalnego (więc może działać w tle), nie próbować uruchomić żadnego polecenia zdalnego, wystarczy otworzyć tunel, a nie tworzyć tty.Większość normalnych metod odradzania demona nie działa zbyt dobrze przy konfigurowaniu tunelu sieciowego w ten sposób. Problem z łącznością sieciową spowodowałby, że próbowała zburzyć mur, aby się przedostać. Prosta pętla ze snem do oczekiwania powinna załatwić sprawę. Dziesięć minut to niezła liczba, ponieważ nie powoduje zalania sieci i plików dziennika z próbami, jeśli występuje problem (na przykład, gdy komputer B jest w trybie offline), ale mimo to połączenie jest dość szybkie.
Taki skrypt można uruchomić podczas rozruchu
/etc/rc.local
. Twoja pierwsza zmiana zalogować się do urządzenia rozpocznie około dziesięciu minut po komputerze z butami.źródło
/etc/ssh/sshd_config