Fazendo uma conexão ssh ControlPath atuar como escravo-ou-falha (não fallback para ControlMaster)

0

Eu gostaria de forçar conexões ssh secundárias a usar uma conexão existente do ControlMaster e falhar se o mestre não estiver presente.

Com ssh -o ControlPath=somewhere -o ControlMaster=no ... , essa nova conexão procurará pelo mestre existente e, se não for encontrada, voltará a criar sua própria conexão independente. Podemos apenas desativar o fallback?

A coisa mais próxima que eu posso encontrar é

ssh -o ControlPath=somewhere -o ControlMaster=no -O check \
    && ssh -o ControlPath=somewhere -o ControlMaster=no

Estou sentindo falta de algo?

Por quê?

Um caso comum é onde ssh requer alguma interação com um OTP ou hardware. Eu normalmente trabalho com vários terminais, cada um executando algo como while sleep 1; do ssh-and-reconnect-to-a-screen-session ; done .

No meu mundo perfeito, haveria uma única conexão principal (com verificação de OTP / token), então todos os outros terminais fariam um loop e falhariam até que pudessem acessar a conexão do mestre de controle.

Como é (dependendo da ordem aleatória de conexões anteriores falharem e tentarem novamente), abrir a tampa do meu laptop me irritará com várias verificações OTP / token de uma só vez, porque todo comando ssh quer ser o / a novo mestre.

(Novamente, em um mundo perfeito, mosh resolveria o problema do pick-up-where-I-left-off, mas aqui não é realmente uma opção) -:

    
por DouglasDD 29.03.2016 / 03:54

1 resposta

1

Seu caso de uso é realmente específico. Eu não acho que você sente falta de algo.

Existem apenas algumas opções de linha de comando -S e -M que você pode usar, se você não quiser colocar isso no ~/.ssh/config :

ssh -S somewhere -O check host && ssh -S somewhere -M host
    
por 29.03.2016 / 09:44