requer mestre de controle existente para OpenSSH

1

Eu estou procurando uma opção para OpenSSH no Linux para insistir em usar conexão mestre de controle pré-existente. Ou seja, gostaria de ter certeza de que um comando ssh falha se não puder se conectar ao soquete de conexão mestre e nunca tentar conectar-se ao próprio host remoto.

Eu tentei diferentes combinações de ControlPath e ControlMaster, mas parece que ssh, quando o soquete principal não está disponível, tentará se conectar em qualquer caso.

Como solução, coloco o meu ~ / .ssh / config:

Match host my-master-only-host   
  # Use non-existing port to insist on using master connection 
  Port 55555

assim, por padrão, o ssh falha e, em seguida, alterna para a porta real ao iniciar a conexão principal:

ssh -p 22 -M my-master-only-host

Isso funciona, mas dependendo das configurações do firewall, ssh sem mestre pode demorar um pouco até o tempo limite de conexão. Alguma maneira melhor?

    
por Igor Bukanov 30.05.2018 / 14:15

2 respostas

0

Acho que o ProxyCommand pode ser usado para reforçar isso. Dê uma olhada no socat para esse fim.

EDITAR:

ssh -o ProxyCommand="socat - SOCKET:<path_to_control_path>" <hostname>
    
por 31.05.2018 / 14:49
0

A sugestão de tomek deu uma dica de como eu posso usar o ProxyCommand. A ideia é ter em .ssh/config :

# By default prevent any connections via immediate exit from proxy.  
Match host my-master-only-host   
    ProxyCommand exit 1

Então eu posso chamar o ssh quando configurar o mestre de controle como:

ssh -M -o ProxyCommand=none my-master-only-host

Aqui ProxyCommand=none anula o efeito da configuração do ProxyCommand na configuração. Este uso de none não está documentado, mas funciona com pelo menos o OpenSSH 7.7.

    
por 01.06.2018 / 15:52

Tags