Ви просите його прослухати ваш локальний порт 22 і переадресувати з'єднання до порту віддаленої системи 8090. Ви не можете цього зробити, тому що ваш локальний порт 22 вже прийнятий вашим локальним сервером SSH.
Я думаю, що ви шукаєте - це дистанційне переадресація. Заміна -L 22:localhost:8090
на -R 8090:localhost:22
дозволить віддаленому хосту прослухати порт 8090 та направити запити на ваш SSH-сервер.
Якщо ви залишаєте з'єднання запущеним, щоб пізніше ви могли зайти з віддаленого сайту, тоді ви хочете переконатися, що з'єднання не вичерпано через неактивність, додавши відповідні параметри ( -o TCPKeepAlive=yes
або -o ServerAliveInterval=30
)
Тож у вас вийде щось на кшталт:
ssh -N user@my_server -R 8090:localhost:22 -o ServerAliveInterval=30
Крім того, якщо один із мережних скачків між вами та сервером в будь-який момент відключений, з'єднання припиниться, незважаючи на будь-які вказані вами параметри KeepAlive, тому ви, можливо, захочете додати цю команду до inittab або заглянути в пакет daemontools або ваш дистрибутив еквівалент, так що він завжди починається під час завантаження і перезапускається, коли він закривається з якоїсь іншої причини, ніж відключення системи (або ви можете запустити його зі скрипту оболонки, який циклічно нескінченний, але init або daemontools - це чистіші рішення).