zainicjuj połączenie ssh z serwera do klienta

10

Możemy łatwo połączyć sshsię ze zdalną maszyną, która ma publiczny adres IP.

Ale teraz mam zdalną maszynę bez publicznego adresu IP i muszę połączyć się z nią z mojego komputera, który ma publiczny adres IP. Aby zdalny komputer zainicjował to połączenie (dodaj klienta).

Potrzebuję tego, ponieważ na komputerze jest mój dziadek bez publicznego adresu IP i czasami potrzebuje pomocy w swoim systemie.

W podobnej sytuacji w systemie Windows użyłem połączenia VNC (przez TightVNC), serwer TightVNC ma opcję „Dodaj klienta”: użytkownik właśnie wprowadził adres IP klienta (tj. Mój publiczny adres IP), mój klient jest już w „trybie nasłuchiwania”, i kiedy „serwer” dodaje klienta, połączenie jest inicjowane.

Czy można wykonać tę samą sztuczkę przy połączeniu SSH?

Dmitry Frank
źródło

Odpowiedzi:

12

Z definicji klient inicjuje połączenie.

Jeśli chodzi o twój problem, myślę, że prostym rozwiązaniem byłoby zbudowanie tunelu zwrotnego.

Na komputerze bez publicznego adresu IP:

ssh -R 2222:localhost:22 loginOfServerWithPublicIP@publicIP

To łączy się z serwerem przez SSH i buduje tunel z serwera z publicznym adresem IP na porcie 2222 do komputera bez publicznego adresu IP na porcie 22 (SSH).

A potem na serwerze:

ssh -p 2222 loginOfComputerWithoutPublicIP@locahost

Połączenie jest przekierowywane z portu 2222 serwera do portu 22 komputera przez pierwszy tunel. Możesz użyć narzędzia, autosshktóre sprawi, że tunel będzie bardziej sprężysty (tj. Uruchom go ponownie automatycznie po wyłączeniu).

lgeorget
źródło
Dziękuję, bardzo przydatny i zwięzły. Zobacz odpowiedzi na to pytanie, aby uzyskać więcej informacji i inne przydatne opcje.
AstroFloyd