O script SFTP obtém uma resposta de destino diferente quando executado a partir de diretórios diferentes

1

Estou confuso com um script de shell do SFTP e qualquer ajuda seria muito apreciada. Eu escrevi um script sftp para se conectar e fazer o upload de informações ACH para um site bancário. O script usa 'esperar' para aguardar respostas do site remoto. O script é executado em um servidor RedHat, versão 5.11.

Se eu executar este script a partir do meu diretório home ou meu diretório temp, o host remoto responderá ao login com "Password:" e meu script SFTP será executado normalmente. Se eu executar esse script de um diretório dedicado ao armazenamento de scripts de shell usados pelo CRON, o servidor remoto responderá com "Insira a frase secreta para chave '/ prod / apps / xxxxxx / batchjobs / ACRO_privatessh'" e meu script SFTP trava, como resposta esperada não corresponde ao que é enviado do servidor remoto.

Todas as outras partes, exceto o diretório a partir do qual o script é executado, permanecem iguais. Isso inclui permissões, propriedade e o userId que executa o script. Dito de outro modo, posso executar o script a partir do nosso diretório batchjobs, onde ele é interrompido porque a resposta do servidor está "errada". Em seguida, posso copiar esse script para meu diretório pessoal, e o script é executado e concluído porque a resposta do servidor está "certa".

Agradecemos antecipadamente por qualquer ajuda.

-Dan

    
por Dan P 16.10.2015 / 23:22

1 resposta

1

Quando você executa o script a partir do seu homedir, um diretório temporário ou outro lugar, o conteúdo de $ SFTPKEY é inválido (leia-se: não aponta para a chave privada válida) e, portanto, não é usado. Quando você o executa a partir da sua casa "normal", o script encontra /prod/apps/xxxxxx/batchjobs/ACRO_privatessh e tenta usá-lo. "$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) mostra o nome do diretório no qual o script está localizado.

Você tem algumas opções:

  • use a chave, modificando o script para permitir que você insira a senha da chave; ou usando ssh-agent; ou usando uma chave sem senha.
  • remova referências a $ SFTPKEY do script
por 17.10.2015 / 06:17