Since sftp is based on ssh, you have a couple of options.
1) One item that makes this up is authentication. Falling back to passwords is a last resort for SSH. Instead, do an ssh-keygen on the client, and add that key to the authorized_keys file on the server box. If you want not to prompt for a password, use an empty passphrase in the private key.
2) If you don't want to do that (if the private key could be obtained by someone), you can run ssh-agent, which will cache the passphrase in memory once it has been entered.
Both of these should apply equally to ssh, scp, and sftp, since they're all the same underlying encryption/authentication technology.