Is it possible to automatically change the color of the terminal based on which server I am connected to through SSH?

For instance, when I fire up the terminal it has the standard colors defined under my profile. Then I ssh to ssh.example.com and the color changes to black & green instead. Then I exit the session and the color returns to the standard color theme.

I know that you could do this manually. But I'm looking for an automated way.


Yes, you can by changing the PS1 value in .bashrc file on every hostname where you are connecting with ssh.

See this answer to view how to costumize as you like the bash changing the PS1 value.

ssh colored

On my machine (radu@Radu) I have in .bashrc:

PS1='${debian_chroot:+($debian_chroot)}\[\033[01;35m\]\u@\h\[\033[00m\]:\[\033[01;34m\] \w\[\033[01;37m\] > '

On the hosted machine (radu@ubuntu) I have:

PS1='${debian_chroot:+($debian_chroot)}\[\033[01;35;40m\]\u@ubuntu\[\033[00;40m\]:\[\033[01;34;40m\] \w\[\033[01;32;40m\] > '
  • 7
    How exactly did u manage to change the background color? – chrisg86 Mar 11 '15 at 13:31
  • The '3x' codes change the foreground color. the '4x' codes change the background color. Notice that the hosted machine has '4x' codes, but the local does not. arwin.net/tech/bash.php – FlipMcF Sep 8 '16 at 16:35
  • Is there a way to get the same result without changing anything on the remote box? We use VMs, and changes wouldn't be persisted for long... – Christian Jul 31 '17 at 11:08

If you are using xterm, this works great.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.