This would be a nice to have; basically the equivalent of SSH's -R option:
Specifies that the given port on the remote (server) host is to be forwarded
to the given host and port on the local side. This works by allocating a
socket to listen to port on the remote side, and whenever a connection is
made to this port, the connection is forwarded over the secure channel, and
a connection is made to host port hostport from the local machine.
Port forwardings can also be specified in the configuration file. Privi-
leged ports can be forwarded only when logging in as root on the remote
machine. IPv6 addresses can be specified by enclosing the address in square
By default, the listening socket on the server will be bound to the loopback
interface only. This may be overridden by specifying a bind_address. An
empty bind_address, or the address `*', indicates that the remote socket
should listen on all interfaces. Specifying a remote bind_address will only
succeed if the server's GatewayPorts option is enabled (see sshd_config(5)).
If the port argument is `0', the listen port will be dynamically allocated
on the server and reported to the client at run time. When used together
with -O forward the allocated port will be printed to the standard output.
My specific use case here is wanting to use https://github.com/wincent/clipper, which relies on reverse port-forwarding to expose the local clipboard to a process running on a remote host (ie. to do things like copy from tmux or Vim on a remote machine and have it land in your local system clipboard).
I've seen tickets here for agent forwarding and "normal" (not reverse) port-forwarding, so thought I'd open up a ticket to track this one separately.
Agree this would be very useful. Mosh already recognizes parts of ~/.ssh/config. It should also recognize directives like
RemoteForward 52698 127.0.0.1:52698
related to #431