ssh por meio de autenticação que requer proxy

1

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

    
por Tom Mekken 04.06.2018 / 15:39

2 respostas

0

Agora, depois de horas pesquisando, finalmente consegui trabalhar para mim com a ajuda de "saca-rolhas". Meu servidor ssh está rodando atualmente na porta 443 (ainda não tentei, se seria possível em 22 também).

~ / .ssh / config

Host <my.ssh.server>
    ProxyCommand corkscrew <my.companies.proxy> <proxy.port> %h %p ~/corkscrew-auth

~ / .corkscrew-auth

<proxies.username>:<proxies.password>

Agora consegui me conectar ao meu servidor por meio de:

ssh <remote.user>@<my.ssh.server> -p 443
    
por 25.06.2018 / 14:39
0

Apenas para um teste - você já considerou usar nc ? Quando eu tentava fazer com que os comandos de proxy funcionassem, eu normalmente estava fazendo isso no nível de configuração: /root/.ssh/config

Por exemplo, a configuração teria o seguinte:

Host ssh.example.com
    ProxyCommand ssh [email protected] nc %h %p

Isso é dito sempre que você se conectar a ssh.example.com, ele usará o ProxyCommand abaixo. Eu sugiro dar uma chance, se você absolutamente não pode usar o utilitário netcat, tenho certeza que podemos pensar em uma solução alternativa.

    
por 04.06.2018 / 16:08