Nenhuma das respostas acima pode ignorar o shell de login do ssh. Você pode passar uma linha de comando completa e, portanto, executa o shell remoto para processar o comando e definir o ambiente de trabalho do comando. Isso é o que as shells são para e é o caminho Unix. Você teria todos os tipos de problemas de compatibilidade se tentasse executar algo sem um shell. Da mesma forma, tentar um controle-C deve fazer o mesmo que chamar exit, que é o comportamento que você está tentando evitar. Se o bash continua sendo um bug. Por que as pessoas continuam dizendo que a página man diz algo diferente, é necessário citá-la porque não diz nada do tipo na minha página de manual.
Além disso, na maioria dos sistemas linux, especificar / bin / sh faz NADA, já que este é apenas um link simbólico para o bash!
Quer testar? Adicione instruções "echo" a você .bashrc e .profile e veja qual delas é executada. Eu fiz. Aqui estão os resultados.
ssh user@host executará .bash_profile
ssh user@host /bin/bash executará .bashrc, mas acha que é não interativo (sem prompt).
ssh -t user@host /bin/bash executa .bashrc duas vezes ... uma vez no login, uma vez para o comando passado, portanto, especificar QUALQUER shell sempre executará o primeiro.
ssh -T user@host é o mesmo que não especificar -T ou -t em tudo.
Agora, se você perceber, o MEU sistema não está executando os dois arquivos, apenas um ou outro. Mas o pôster original tem uma linha em .bash_profile executando .bashrc, então .bashrc sempre será executado, não importa o quê. Não deveria ter colocado essa linha lá! Se essa linha não existisse, você não teria um problema.
Você precisará encontrar outro caminho ou encontrar um administrador. É para isso que os administradores são.