Estou tentando me conectar a um servidor onde a autenticação dupla (publickey,password)
está habilitada. Estou usando sshpass
para 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 batchfile
caso afirmativo, alguém pode me ajudar nisso
Arquivo em lote:
echo "Hey, I'm from Inside"
!echo "Hey, I'm from Outside"
Responder1
Isso -b
impede a autenticação interativa (o que você tenta simular sshpass
).
Em vez disso, você precisará passar os comandos para sshpass
stdin.
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.