Source .profile and .bashrc on ssh login without tty
Here's a method to have bash source .bashrc on non-interactive sessions so that you don't have to hard code environment variables in multiple places:


Set PermitUserEnvironment to yes in /etc/sshd_config (man sshd)
Set BASH_ENV to ~/.bashrc in ~/.ssh/environment (man bash)
Add this line to the top of your ~/.bashrc, which sources /etc/profile for non-interactive sessions:


This essentially duplicates the interactive login environment for non-interactive logins, without having to hard code environment values (e.g., $PATH) in multiple places.

if [[ ! $- == *i* ]]; then
        . /etc/profile
fi


Step 3. is needed only if you have the Macports path(s) set in /etc/paths like I do. But if you're setting those paths (e.g., /opt/local/bin) in ~/.bashrc, then I suppose you wouldn't need Step 3. 

For your situation, you should be able to change ~/.bashrc to ~/.profile. 

I have ~/.bash_profile source ~/.bashrc, and I do not use ~/.profile. With this configuration (and the above changes), bash environment variables (e.g., $PATH) should look identical for interactive login, interactive non-login, and non-interactive sessions.