Presumivelmente, você está definindo BASH_ENV
em seu .bashrc
. O Bash carrega .bashrc
quando é interativo e não é um shell de login, ou quando é um shell de login chamado pelo rshd ou (em muitas distribuições, mas é uma opção em tempo de compilação) sshd. Isso é tarde demais para esta instância do bash. Coloque os comandos diretamente em ~/.bashrc
.
# .bashrc
if [[ $- = *i* ]]; then
# Commands for interactive use: prompt, aliases, key bindings, etc.
# Don't set environment variables here, that goes in .profile.
else
# Commands executed only on remote logins.
# You can set environment variables here. Do not output anything.
fi
Se você só precisa definir variáveis de ambiente, você pode usar ~/.pam_environment
, que é usado para qualquer tipo de login. Veja Qual é a melhor distro / shell- maneira agnóstica de definir variáveis de ambiente?
Para outras formas de executar comandos ao efetuar login não-interativamente no SSH, consulte arquivos de inicialização sh sobre ssh