Você está ligado apenas a uma porta localhost. Não está particularmente claro na documentação (veja man ssh
) deste segmento:
By default, the local port is bound in accordance with the
GatewayPorts
setting. However, an explicit bind_address may be used to bind the connection to a specific address. The bind_address oflocalhost
indicates that the listening port be bound for local use only, while an empty address or*
indicates that the port should be available from all interfaces.
E de ssh_config
:
GatewayPorts Specifies whether remote hosts are allowed to connect to local forwarded ports. By default,
ssh
(1) binds local port forwardings to the loopback address. This prevents other remote hosts from connecting to forwarded ports.GatewayPorts
can be used to specify thatssh
should bind local port forwardings to the wildcard address, thus allowing remote hosts to connect to forwarded ports. The argument must be “yes” or “no”. The default is “no”.
O que isso significa é que, quando você usa ssh -D 8127
, está usando um limite de porta de acordo com GatewayPorts
, cujo padrão é localhost
, ou seja, hosts remotos não podem se conectar.
Se você especificar ssh -D :8127
, incluirá referência a um endereço e, como esse endereço está vazio, o padrão é *
, isto é, hosts remotos podem se conectar.
Altere seu comando para isso e ele funcionará como você deseja:
ssh -D :8127 -f -g -N -C -vvv myuser@remote_server