Não há provisão no protocolo SSH para redirecionamentos. Leia RFC 4251 , RFC 4252 e RFC 4253 para obter detalhes sobre a negociação de conexão.
Estou procurando uma maneira de redirecionar uma conexão ssh de um host para outro. Quando um usuário cria uma conexão ssh para hospedar foo, eu gostaria que o servidor retornasse alguma resposta, o que faz com que o cliente ssh feche a conexão ssh para foo e, em vez disso, conecte-se à barra de host.
Importante, para o aplicativo que tenho em mente, não há problema em simplesmente redirecionar a conexão ssh para bar via foo, portanto o encaminhamento de porta padrão está fora de questão. Uma vez que o redirecionamento ocorre, o cliente deve enviar pacotes TCP diretamente para bar, não para foo (e não barrar via foo).
Então, mais ou menos, estou procurando um análogo de SSH para um redirecionamento de HTTP (que faz com que o cliente desligue a conexão original e conecte-se ao host para o qual foi redirecionado).
Também é importante para o aplicativo que eu tenha em mente que isso não requer nenhuma configuração do lado do cliente.
Então, é possível fazer isso?
Você pode configurar o servidor SSH foo para funcionar como um tipo de proxy para o servidor SSH bar .
Por exemplo, com o OpenSSH, você deve ser capaz de usar ForceCommand
para SSH no servidor bar :
ForceCommand ssh bar_host
É claro que a conta no host foo precisa ser configurada para permitir acesso sem interação à barra , por exemplo por ter chave privada não criptografada.
Isso funcionará de maneira transparente para o aplicativo cliente.
Tags ssh