.bashrc at ssh login

UbuntuSshBash

Ubuntu Problem Overview


When I ssh into my ubuntu-box running Hardy 8.04, the environment variables in my .bashrc are not set.

If I do a source .bashrc, the variables are properly set, and all is well.

How come .bashrc isn't run at login?

Ubuntu Solutions


Solution 1 - Ubuntu

.bashrc is not sourced when you log in using SSH. You need to source it in your .bash_profile like this:

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

Solution 2 - Ubuntu

I had similar situation like Hobhouse. I wanted to use the command

ssh myhost.com 'some_command'

where some_command exists in /var/some_location.

I tried to append /var/some_location to the PATH environment variable by editing $HOME/.bashrc but that wasn't working. Because per default, .bashrc (on Ubuntu 10.4 LTS) exits early due to this piece of code:

# If not running interactively, don't do anything
[ -z "$PS1" ] && return

Meaning if you want to change the environment for the ssh non-login shell, you should add code above that line.

Solution 3 - Ubuntu

For an excellent resource on how bash invocation works, what dotfiles do what, and how you should use/configure them, read this:

Solution 4 - Ubuntu

If ayman's solution doesn't work, try naming your file .profile instead of .bash_profile. That worked for me.

Solution 5 - Ubuntu

Similar as @Loïc Wolff , Added below in my $HOME/.bash_profile Ubuntu 16

if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
        echo "Executed .bash_profile , calling .bashrc"
        . "$HOME/.bashrc"
    fi
fi

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionHobhouseView Question on Stackoverflow
Solution 1 - UbuntuAyman HouriehView Answer on Stackoverflow
Solution 2 - UbunturuseelView Answer on Stackoverflow
Solution 3 - UbuntulhunathView Answer on Stackoverflow
Solution 4 - UbuntuLoïc WolffView Answer on Stackoverflow
Solution 5 - UbuntuswazView Answer on Stackoverflow