.bash_profile is sourced everytime you login to a bash shell either locally on the terminal or remotely via ssh

.bashrc is sourced everytime you open a new shell after logging in

I like to have my aliases stored in .bashrc and just have .bash_profile source my .bashrc file if it exists.

I put the following in my .bash_profile

if [ -f ~/.bashrc ]; then
    source ~/.bashrc
fi

This ensures my aliases and functions in my .bashrc are applied when I remotely ssh into my Linux boxes and it avoids duplication across multiple files.