Hmm, a sftp login doesn't appear to read /etc/bashrc either (which makes sense, since it's the startup file for a particular interactive shell).
Read the manpages for sshd(8). A snippet follows:
When a user successfully logs in, sshd does the following:
6. Reads the file ~/.ssh/environment, if it exists, and users are
allowed to change their environment. See the
PermitUserEnvironment option in sshd_config(5).
8. If ~/.ssh/rc exists, runs it; else if /etc/ssh/sshrc exists,
You will likely need to work with that information.