Estou ciente de que é possível encaminhar SSH do servidor A para o servidor B criando um túnel.
O que estou pedindo é sim a alternativa vermelha no esquema acima. Este cenário pode ser implementado:
- SSH para o servidor A
- O servidor A diz ao cliente para ir para o servidor B em vez disso
- O servidor B se comunica diretamente com o cliente por SSH
Então basicamente uma espécie de proxy que depois de apresentar o cliente-servidor um ao outro, ele sai da comunicação.
Imagino que usar um redirecionamento de firewall não ofereça muita personalização.
O que procuro afinal é uma forma de tornar o acesso via SSH para git mirrors transparentes para o cliente dependendo da geolocalização.
Cenário de cenário avançado
- Cliente puxando do servidor A e está mais próximo do servidor B é redirecionado para B
- Ao fazer push, o cliente permanece no servidor A
Você pode pensar neste tipo de embalagem:
Se você precisar apenas redirecionar
pull
, precisará de um alias. Mas provavelmente você também desejará redirecionarfetch
(se não mais comandos, não sou tão bom com o Git).Infelizmente, não há sinalizador para ativar no SSH para fazer isso. Você teria que codificar algo personalizado para o GIT. (ou seja, se o servidorA tiver um tempo de ping menor que o servidor B, use A ou vice-versa)