Como enviar a senha com o ficheiro em lote sftp

Estou a tentar descarregar um ficheiro do site sftp usando um script em lote. Estou a receber o seguinte erro:

Permission denied (publickey,password,keyboard-interactive).
Couldn't read packet: Connection reset by peer

ao executar o comando:

sftp -b /home/batchfile.sftp <user>@<server ip>:<folder>

o batchfile.sftp inclui estes dados:

password
lcd [local folder]
cd [sftp server folder]
get *
bye

nota: está a funcionar ao executar no prompt como

sftp <user>@<server ip>:<folder>
Mas preciso da capacidade de introduzir a senha automaticamente.

Author: P i, 2012-07-31

4 answers

Você vai querer instalar o programa sshpass. Então:

sshpass -p YOUR_PASSWORD sftp -oBatchMode=no -b YOUR_COMMAND_FILE_PATH USER@HOST

Obviamente, é melhor configurar a autenticação de chave pública. Só usar isto se for impossível de fazer, por alguma razão.
 34
Author: Joe Van Dyk, 2014-02-01 04:56:12

Se estiver a gerar um monte de comandos a executar, então ligue para esse programa a partir de um terminal, pode tentar o seguinte.

sftp login@host < /path/to/command/list

Ser-lhe-á então pedido para introduzir a sua senha (de acordo com o normal), no entanto, todos os comandos no script são executados depois disso.

Esta não é claramente uma opção completamente automatizada que possa ser usada numa tarefa cron, mas pode ser usada a partir de um terminal.

 17
Author: Tigger, 2014-02-06 00:47:53

Aconselho-o a executar a opção sftp com-V. Torna-se muito mais fácil compreender o que está a acontecer.

O manual indica claramente:

O formato final de Utilização permite sessões automatizadas usando o-b Opcao. Nesses casos, é necessário configurar a autenticação não interativa para evitar a necessidade de introduzir uma senha no momento da ligação (ver sshd(8) e ssh-keygen (1) Para mais detalhes).

Por outras palavras, tem de estabelecer uma autenticação do 'publickey'. Então você será capaz de executar um script de lote.

P. S. É errado colocar sua senha em seu arquivo em lote.
 1
Author: akond, 2013-07-21 01:04:53
Se mencionares ficheiros em lote, estou correcto, presumindo que estás a falar de um sistema Windows? Se assim for, você não pode usar o sshpass, e você terá que mudar para uma opção diferente. Duas dessas opções, que seguem filosofias diametralmente opostas são:
  • psftp: ferramenta de linha de comandos a que pode ligar dentro dos seus programas em lote; o psftp faz parte do pacote PuTTY e pode encontrá-lo aqui http://www.chiark.greenend.org.uk / ~sgtatham/putty/download.html
  • Syncplify.me programa FTP: um cliente de FTP/S e SFTP para janelas que lhe permite guardar a sua senha em "ficheiros de perfil" encriptados; veja aqui http://www.syncplify.me/products/ftp-script/

Seja como for, é fortemente recomendado mudar de senha para Autenticação PKI.

 -1
Author: FjodrSo, 2015-05-18 16:55:26