Autenticación dual SFTP con archivo por lotes

Autenticación dual SFTP con archivo por lotes

Estoy intentando conectarme a un servidor donde (publickey,password)está habilitada la autenticación dual. Estoy usando sshpasspara proporcionar una contraseña para automatizar el script, pero cuando tengo un archivo por lotes con SFTP, la conexión falla sin que la conexión del archivo por lotes sea exitosa.

export SSHPASS=helloworld

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

Error:

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

La conexión se realizó correctamente sin el archivo por lotes

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

Intenté proporcionar una contraseña dentro de un archivo por lotes, pero no tuve suerte.

¿Es posible lo que estoy tratando de lograr sshpass? batchfileSi es así, ¿alguien puede ayudarme con esto?

Archivo por lotes:

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

Respuesta1

Esto -bevita la autenticación interactiva (lo que intenta simular sshpass).

En su lugar, deberá pasar los comandos a sshpassla entrada estándar.

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

Como aquí:
¿Cómo poner el comando sshpass dentro de un script bash?


Nunca lo uses StrictHostKeyChecking=no, a menos que no te importe la seguridad.

información relacionada