No trabalho, temos obviamente um proxy da empresa. Eu preciso ssh para algumas máquinas fora da rede da empresa. O proxy, no entanto, requer autenticação.
Vamos supor que temos as seguintes variáveis:
proxy_user="<username I need to authenticate at the proxy>"
proxy_pass="<password I need to authenticate at the proxy>"
proxy_serv="<hostname of the proxy>"
proxy_port=<port of the proxy>
ssh_user="<remote username I need to login on the ssh-machine>"
ssh_serv="<remote password I need to login on the ssh-machine>"
ssh_port=<ssh-port>
Ao definir a variável-env http_proxy e https_proxy da seguinte forma, ferramentas como wget funcionam bem (no servidor remoto, há também um web_server instalado):
$ export env http_proxy="http://$proxy_user:$proxy_pass@$proxy_serv:$proxy_port"
$ wget $ssh_serv
Connecting to <proxy_serv>... connected.
Proxy request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: ‘index.html’
Mas com o ssh não funciona:
$ ssh $ssh_user@$ssh_server:$ssh_port
ssh: Could not resolve hostname <ssh_server>:<ssh_port> Temporary failure in name resolution
Depois de procurar um pouco, descobri que o ssh precisa de um "ProxyCommand", enquanto "nc" não é mais recomendado, "ssh -W" deve ser usado. Mas não consegui encontrar um exemplo, onde a autenticação era necessária. Eu tentei até agora:
ssh -o "ProxyCommand='ssh -W %h:%p $proxy_user:$proxy_pass@$proxy_serv:$proxy_port'" $ssh_user@$ssh_serv:$ssh_port
Acho que estou sentindo falta de algo em algum lugar, mas não consegui encontrar uma boa dica (nem nos manuais nem no google).
Espero que alguns de vocês possam me ajudar.
Agradecemos antecipadamente