Pytasz, czy nasłuchuje na lokalnym porcie 22 i przekierowuje połączenia na port 8090 systemu zdalnego. Nie możesz tego zrobić, ponieważ lokalny port 22 jest już zajęty przez lokalny serwer SSH.
Myślę, że to, czego szukasz, to przekazywanie zdalne. Wymiana -L 22:localhost:8090
z -R 8090:localhost:22
powie zdalnego hosta, aby nasłuchiwać na porcie 8090 i przekazuje żądania do serwera SSH.
Jeśli pozostawiasz uruchomione połączenie, aby móc później wejść ze zdalnej witryny, musisz upewnić się, że połączenie nie przekroczy limitu czasu z powodu braku aktywności, dodając odpowiednie opcje ( -o TCPKeepAlive=yes
lub -o ServerAliveInterval=30
)
Więc skończysz z czymś takim jak:
ssh -N user@my_server -R 8090:localhost:22 -o ServerAliveInterval=30
Ponadto, jeśli jeden z przeskoków sieciowych między tobą a serwerem zostanie przerwany w dowolnym momencie, połączenie zostanie przerwane pomimo określonych opcji KeepAlive, więc możesz chcieć dodać to polecenie do inittab lub zajrzeć do pakietu daemontools lub dystrybucji równoważne, aby zawsze uruchamiał się przy rozruchu i był restartowany, gdy kończy działanie z innego powodu niż zamknięcie systemu (lub można go uruchomić ze skryptu powłoki, który zapętla się w nieskończoność, ale init lub daemontools są czystszymi rozwiązaniami).