Unidades de tempo no Ncat, alternativa ao netcat

Português
,

Olá,

É comum o uso da ferramenta netcat com o ProxyCommand do SSH, que permite usar um servidor como bridge, útil quando precisamos conectar em uma máquina atrás de um firewall. Exemplo:

1
2
3
4
5
6
7
# Arquivo: ~/.ssh/config

Host computadordaempresa
  HostName 192.168.1.92 # O endereço IP que o firewall consegue enxergar
  User outrousuario
  IdentityFile ~/.ssh/id_rsa
  ProxyCommand ssh meuusuario@firewall.empresa.com nc -w 120 %h %p

Eu usava o netcat e funcionava perfeitamente. Então, precisei conectar em uma máquina em outra rede, e o firewall desta utilizava CentOS 7, e ao tentar utilizar a configuração acima eu recebi o seguinte erro:

1
Ncat: Since April 2010, the default unit for -w is seconds, so your time of "120" is 2.0 minutes. Use "120ms" for 120 milliseconds. QUITTING.

Eu não sabia, mas eu estava usando o Ncat ao invés do velho Netcat. Ainda não tive tempo de estudar as diferenças, porém uma é evidente. Todo parâmetro que um valor de tempo precisa ter a unidade. Em ncat --help:

1
2
3
4
5
6
$ nc --help
Ncat 6.40 ( http://nmap.org/ncat )
Usage: ncat [options] [hostname] [port]

Options taking a time assume seconds. Append 'ms' for milliseconds,
's' for seconds, 'm' for minutes, or 'h' for hours (e.g. 500ms).

Desta forma, minha configuração de SSH precisa ter a unidade de tempo (ms, s, m, h, etc) adicionada ao parâmetro -w:

1
  ProxyCommand ssh myusername@firewall.company.com nc -w 120m %h %p

Até mais.