sftp/scp may fail at connection time if you have shell initialization
(.profile, .bashrc, .cshrc,etc) which produces output for non-interactive
sessions. This output confuses the sftp/scp client. You can verify if your shell is doing this by executing:
ssh yourhost /usr/bin/true
If the above command produces any output, then you need to modify your shell initialization.