Olá!
Gostaria de poder contar com a ajuda de alguém que tenha bastante paciência com um newbie dedicado.
É o seguinte: caí de pára-quedas numa empresa que está desenvolvendo um sistema (em Java) para filtrar logs de IPs gerados por um servidor (Linux) de acesso. Atualmente o processo é efetuado através de um shell script rodando localmente na máquina onde os logs são gravados. Antes da execução do script, um usuário, através do Putty, efetua uma conexão a um servidor (gateway), e de lá abre uma nova conexão SSH para a máquina onde o script rodará, e após sua execução, os arquivos filtrados são copiados, através do WinSCP, para a máquina do usuário.
O propósito da aplicação que estou fazendo é permitir que usuários, a partir de máquinas Windows, possam enviar arquivos (arquivos com dados de entrada que são lidos pelo shell script) para o servidor Linux diretamente , executar o script, e copiar o resultado gerado para a máquina do usuário.
Para realizar a conexão e execução do script, estou usando a biblioteca ganymed-ssh2-build210, porém encontro algumas dificuldades, que vou citar abaixo:
Não consigo interagir com o terminal virtual que é criado ao ser aberta a conexão via SSH. Consigo somente enviar comandos que não exigem interação com o teclado para que o comando possa ser concluído. Exemplo: consigo enviar um “ls” e visualizar o resultado, mas não consigo rodar um “ssh usuario@servidor” pois é necessária a digitação da senha após o envio do comando. Esta necessidade de efetuar uma nova conexão SSH, após ser aberta a primeira conexão através da biblioteca, se justifica pelo fato de a máquina do usuário não poder efetuar conexões SSH diretamente para máquinas fora de sua rede. Então o que ele faz é conectar-se, via Putty, para uma máquina (gateway) e, a partir dela, conectar-se novamente, via SSH, para a outra máquina onde o script será executado. Antes que me sugiram usar autenticação através de chaves públicas e privadas, informo que há restrições da área de segurança quanto a isso. A única alternativa que tenho é interagir com o teclado. Esta máquina que serve como ponte não permite escrita aos usuários que a utilizam, inclusive…
Li bastante a documentação da biblioteca, e em alguns outros fóruns, vi sugestões de como implementar esta biblioteca, usando interação com o teclado para enviar comandos que exigem essa interação, porém entendi bulhufas. Ressalto novamente que sou newbie, e caí de pára-quedas no universo Java.
Alguém poderia, por gentileza, me fornecer um exemplo de implementação desta biblioteca, que permita o envio de comandos, resgate de mensagens do servidor, e que permita interação com o mesmo?
Muito obrigado.
[]'s