Estou implantando um script que é executado em vários clientes atrás de firewalls que não controlo. O script tenta um login do cliente SSH em um servidor remoto que eu controle (o script vem pré-carregado com uma chave privada para autenticação). Alguns dos firewalls em alguns datacenters redirecionam as solicitações da porta ALL OUTBOUND 22 para um servidor diferente (os administradores de sistemas nas várias instalações parecem ter feito isso para seus próprios propósitos).
Nesses casos, o script falha (porque o login do cliente ssh falha). O script possui um recurso de diagnóstico que testa as conexões do usuário. Para poder determinar se meu servidor remoto está acessível a partir de sua estação de trabalho na porta 22, desejo executar o comando
telnet my-remote-host 22
No meu script, e teste a resposta. Meu servidor de destino responde:
SSH-2.0-OpenSSH_4.3
Meu servidor de desenvolvimento local responde:
SSH-2.0-OpenSSH_5.3p1 Debian-3ubuntu4
NOTA: Estas são as respostas telnet na porta 22, não o texto do banner OpenSSH para o meu servidor (o que seria inacessível em tais situações)
Como faço para controlar este texto? - Para que eu possa inserir um token que identifique meu próprio servidor como aquele que está sendo executado ping nesta situação. Os servidores do datacenter que aceitam as solicitações da porta 22 podem ter exatamente a mesma versão do OpenSSH sendo executada neles como meu próprio servidor remoto.
(Atualmente, meus diagnósticos estão apenas relatando falha no login, mas há outros motivos pelos quais isso pode acontecer - estou procurando um diagnóstico mais refinado que possa testar para ver se meu servidor está realmente acessível na porta 22 antes de tentar um login real )