Se eu entendi o problema certo, você quer rodar um programa (servidor) na máquina 1. Este programa escuta na porta x que não pode ser acessada de modo remoto por causa de algumas regras de firewall. Agora você deseja ignorar o firewall por um túnel ssh para a máquina 2 de forma que os clientes remotos possam se conectar a uma porta y na máquina 2 que é encaminhada para a porta x na máquina 1.
Para arquivar isso, você precisa de um soquete de escuta na máquina 2 na porta y que encaminha todas as conexões para a máquina 1 e a porta x.
Para fazer isso com o ssh e seu recurso de tunelamento / proxy SOCKS, você pode iniciar uma conexão ssh com a opção -L da máquina 2 para a máquina 1:
machine2# ssh -L portY:localhost:portyX user@machine1
ou o inverso com a opção -R da máquina 1 para a máquina 2 (certifique-se de que o GatewayPorts esteja ativado na máquina2):
machine1# ssh -R machine2:portY:localhost:portyX user@machine2
É claro que a porta x e a porta y também podem ser iguais. Eu apenas os diferenciei para deixar isso mais claro.
Veja a página de manual do ssh para detalhes: link