Estoy intentando conectarme a un servidor donde (publickey,password)
está habilitada la autenticación dual. Estoy usando sshpass
para 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
? batchfile
Si es así, ¿alguien puede ayudarme con esto?
Archivo por lotes:
echo "Hey, I'm from Inside"
!echo "Hey, I'm from Outside"
Respuesta1
Esto -b
evita la autenticación interactiva (lo que intenta simular sshpass
).
En su lugar, deberá pasar los comandos a sshpass
la 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.