Le está pidiendo que escuche en su puerto local 22 y reenvíe las conexiones al puerto 8090 de un sistema remoto. No puede hacer eso, porque su puerto local 22 ya está ocupado por su servidor SSH local.
Creo que lo que estás buscando es el reenvío remoto. Reemplazar -L 22:localhost:8090
con -R 8090:localhost:22
le indicará al host remoto que escuche en el puerto 8090 y reenvíe las solicitudes a su servidor SSH.
Si deja la conexión en funcionamiento para poder ingresar más tarde desde un sitio remoto, entonces querrá asegurarse de que la conexión no se agote debido a la inactividad agregando las opciones relevantes ( -o TCPKeepAlive=yes
o -o ServerAliveInterval=30
)
Entonces terminarás con algo como:
ssh -N user@my_server -R 8090:localhost:22 -o ServerAliveInterval=30
Además, si uno de los saltos de red entre usted y el servidor está inactivo en algún momento, la conexión se cortará a pesar de las opciones de KeepAlive que especifique, por lo que es posible que desee agregar este comando a inittab, o buscar en el paquete daemontools o en su distribución equivalente, para que siempre se inicie en el arranque y se reinicie cuando salga por alguna razón que no sea el apagado del sistema (o podría ejecutarlo desde un script de shell que se repite infinitamente, pero init o daemontools son soluciones más limpias).