Você está igualando as configurações locais às configurações remotas .
Localmente, uma instância do bash, o shell em execução no qual você escreve:
ssh user@host command
Vai executar o comando ssh (nada mais) como um cliente ssh.
Para fazer isso, o shell local precisa não para iniciar um sub-shell ou um novo shell ou login.
O comando é executado como um comando ls é: localmente.
É o comando ssh do cliente que abre uma conexão de rede para um sistema remoto , onde, se autenticado corretamente, um shell novo será iniciado para executar o comando escrito como um argumento para ssh, ou, se nenhum argumento for fornecido, espere mais comandos nessa conexão.
Esse novo shell Remoto necessariamente será um shell de login, pois o usuário remoto (para esse sistema) precisa ser autenticado para efetuar login. Ou, se algum comando específico for fornecido, basta executar esse comando com os privilégios de usuário autenticados.
Você pode ver quais arquivos são originados adicionando um $file sourced ao início de cada arquivo (no sistema remoto ) (o root é necessário para alterar os arquivos /etc/ ):
$ a=(~/.bashrc ~/.profile /etc/bash.bashrc /etc/profile)
$ for f in "${a[@]}"; do sed -i '1 i\echo "'"$f"' was read"\n' "$f"; done
E depois é só iniciar um console do ssh:
$ ssh sorontar@localhost
/etc/profile was read
/etc/bash.bashrc was read
/home/sorontar/.profile was read
/home/sorontar/.bashrc was read
Nesse caso, os dois arquivos bashrc foram lidos porque cada arquivo profile tinha comandos para incluí-los, não porque o shell de login os originasse diretamente.
$ ssh sorontar@localhost :
/etc/bash.bashrc was read
/home/sorontar/.bashrc was read
Neste sistema, onde bashrc é lido em ambos os casos.
Não é necessário adicionar source ~/.bashrc ao comando para executar.
Alterar o PATH
Tudo o que você precisa fazer é incluir as configurações corretas para alterar o "$ PATH", seja em /etc/bash.bashrc para todos os usuários que iniciam um shell neste sistema. Ou em ~/.bashrc para cada usuário que precisar. Você pode adicionar (ou editar) um esqueleto de um usuário .bashrc to /etc/skel/ para que qualquer novo usuário criado tenha o arquivo correto disponível.
O acima é válido apenas para bash. Se você precisar que a configuração funcione para todos os shells, provavelmente configurando a variável de ambiente PATH usando o arquivo ssh ~/.ssh/environment para cada usuário que precisar. Ou use /etc/ssh/sshrc para uma configuração global no sistema em que o servidor ssh está em execução (por favor, leia a seção Arquivos em man sshd para mais detalhes).