Unidades de tempo no Ncat, alternativa ao netcat
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.