Eu estava brincando com a ideia de ter um servidor proxy SSH ou chamado Jump Host, que eu usaria para conectar todos os meus"escondido"Servidores. Então basicamente eu tenho a seguinte configuração. Observe que uso intencionalmente endereços IP aqui em vez do nome do host.
<client> ---> <proxy_ssh> ---> <192.168.0.*>
Minha intenção é que seja o mais transparente possível para os usuários. Então, idealmente, os usuários deveriam apenas executar o seguinte comando
# ssh [email protected]
Para fazer isso funcionar, criei o seguinte arquivo .ssh/config
.
Host *
ServerAliveInterval 240
Compression yes
ForwardAgent yes
ForwardX11 yes
Host 192.168.0.*
ProxyCommand ssh my_user@proxy_ssh.example.com netcat -w 120 %h %p
Isso funciona bem. Mas seria um pouco tedioso se eu tivesse mais redes para trabalhar atrás do meu proxy_ssh
servidor. Então tentei simplesmente adicionar ProxyCommand
à Host *
seção que não funcionou.
Eu queria tornar isso mais transparente para o usuário final e alterei a configuração do ssh para o seguinte, simplesmente deixando de fora a definição específica do Host.
Host *
ServerAliveInterval 240
Compression yes
ForwardAgent yes
ForwardX11 yes
ProxyCommand ssh my_user@proxy_ssh.example.com netcat -w 120 %h %p
Isso teve o impacto de que não consegui mais me conectar ao host final. A conexão simplesmente expirou!
Então, daí a minha pergunta: existe alguma maneira de tornar isso mais transparente de tal forma que toda a minha conexão SSH use o proxy_ssh
host?
Responder1
O exemplo acima tornará recursivo, que cada conexão usará um comando proxy, que é novamente ssh com outro comando proxy. Boa maneira de usar o DOS em seu proxy.
Você deve excluir o proxy da lista, usar -F /dev/null
para ignorar a configuração do comando proxy ou simplesmente ignorar o comando proxy para o proxy ssh:
ProxyCommand ssh -oProxyCommand=none my_user@proxy_ssh.example.com netcat -w 120 %h %p
Responder2
Adicione uma entrada à configuração do host de salto que substitua o comando proxy:
Host proxy_ssh.example.com
ProxyCommand none
Caso contrário, ele tentará usar o comando proxy para chegar ao próprio host de salto.