Resposta curta: sim, ssh pode fazer isso. A resposta está na sua pergunta: "reverter" o tunelamento. Veja a opção -R para o cliente ssh :
-R [bind_address:]port:host:hostport
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.
Mais leituras no sempre útil How To Forge ( Tunnel SSH reverso ), mas o princípio básico é você ssh do seu host privado para o seu público, especificando a porta a ser mapeada de volta. Lembre-se de definir seu endereço de ligação no comando, caso contrário, ele só será vinculado ao loop local por padrão.
Espero que isso ajude.