When trying to connect to an sftp server in lftp, it automatically tries public key authentication first. In my case, because I have so many keys, I usually get “too many authentication failures” before it gets around to trying the password. Took me a while to find the solution, but it turns out to be fairly simple.
Once lftp is running, simply issue this command:
set sftp:connect-program "ssh -a -x -o PubkeyAuthentication=false"
This causes ssh to be run with public key authentication disabled, so it tries the password immediately, and succeeds. Yay.
Posting here for future reference.