Eu tenho investigado o problema subjacente há alguns anos atrás. Eu queria acionar um download de SCP de dentro de uma sessão SSH. Como o seu problema, isso requer a comunicação de dentro da sessão SSH de volta para algum processo no cliente.
Então aqui está uma terceira solução possível: Conecte-se usando um wrapper em torno do SSH, que verifica a saída do SSH e aciona certos comandos localmente quando reconhece um padrão. É claramente um hack, mas isso pode funcionar.
Acabei com uma versão modificada do / usr / bin / script que lembrava minha conexão SSH (por exemplo, me@somehost
), e sempre que minha sessão ssh imprimia ###/some/absulte/path/to/file/on/host.txt###
, executaria localmente scp me@somehost:/some/absulte/path/to/file/on/host.txt .
Um script de shell simples foi usado para produzir convenientemente o padrão e o caminho absoluto no servidor.
(Meu código realmente fez um pouco mais: ele abriu um editor de texto local no arquivo baixado e o enviava novamente usando o SCP quando o arquivo era modificado. Deixe-me saber se você deseja o código.)
Estou à procura de uma implementação melhor desde então, mas não encontrei nenhuma até agora.
Talvez essa técnica possa ser implementada como um comando de proxy do SSH (pense connect.c) em vez de um wrapper em torno do SSH.