O motivo pelo qual isso não funciona é devido a uma incompatibilidade no redirecionamento stdin / stdout entre o cygwin e os programas nativos do Win32, mas há um programa wrapper chamado cygnative
, que resolve o problema. Permite que a linha de comando desejada seja usada assim:
C:> cygnative sshpass -p password ssh -o StrictHostKeyChecking=no user@host ls
(isso funciona para comandos não interativos, mas não para sessões de terminal interativas)
Os links do autor original para cygnative.exe
estão mortos, mas estão disponíveis como fonte C em esta essência ou como fonte e executável em este zip .
Eu descobri essa solução ao tentar resolver outro problema , dessa vez tentando usar rsync
sobre o programa plink
do PuTTY . Eu estava recebendo um erro:
Unable to read from standard input: The parameter is incorrect.
que me levou a descobrir cygnative
, mas foi difícil rastreá-lo devido aos links originais estarem mortos.
O problema é descrito aqui e apresenta a solução, cygnative
, aqui , com uma versão atualizada 1.2 aqui .