Autenticação dupla SFTP com arquivo em lote

Autenticação dupla SFTP com arquivo em lote

Estou tentando me conectar a um servidor onde a autenticação dupla (publickey,password)está habilitada. Estou usando sshpasspara fornecer senha para automatizar o script, mas quando tenho batchfile com SFTP, a conexão falha sem que a conexão do batchfile seja bem-sucedida

export SSHPASS=helloworld

(sshpass -e sftp -b batfile.txt -o 'PasswordAuthentication=yes' \
 -o 'PreferredAuthentications=publickey,password' -o 'StrictHostKeyChecking=no' user@hostname)

Erro:

Permission denied (password).
Couldn't read packet: Connection reset by peer

A conexão foi bem-sucedida sem arquivo em lote

(sshpass -e sftp -o 'PasswordAuthentication=yes' \
 -o 'PreferredAuthentications=publickey,password' -o 'StrictHostKeyChecking=no' user@hostname)

Tentei fornecer a senha dentro de um arquivo em lote, mas sem sorte.

É possível o que estou tentando alcançar sshpass? Em batchfilecaso afirmativo, alguém pode me ajudar nisso

Arquivo em lote:

echo  "Hey, I'm from Inside"  
!echo "Hey, I'm from Outside"

Responder1

Isso -bimpede a autenticação interativa (o que você tenta simular sshpass).

Em vez disso, você precisará passar os comandos para sshpassstdin.

sshpass -e sftp -o 'PasswordAuthentication=yes' \
 -o 'PreferredAuthentications=publickey,password' user@hostname < batfile.txt

Como aqui:
Como colocar o comando sshpass dentro de um script bash?


Nunca use StrictHostKeyChecking=no, a menos que você não se importe com segurança.

informação relacionada