First, you have to understand that sftp uses dsa encryption and not the common rsa-1 key pair generated by default for ssh.
To start with, verify that you have set the right permissions for your .ssh directory (700) & for your known_hosts files (755)
Then, you have to generate dsa key pair for your user
# >ssh-keygen -t dsa
If it doesn't work, try to verify in your /etc/openssh/sshd_config file if this line is present :
Subsystem sftp /usr/local/libexec/sftp-server
Good luck