This quick tip was motivated by a comment from Jason Nash where he wished the hostname of an ESXi host is automatically displayed on the SSH prompt when logging into the system. Traditionally, systems providing SSH access will default the SSH prompt to use the format of [username@hostname current-working-directory], but for an ESXi host, it just displays the current working directory.

This is not that big of an issue, unless you have multiple connections opened up to various systems which is usually the case for the average System Administrator. Being able to quickly identify the host you on are without having to run the hostname command would be nice and I can see why Jason would want to have this. Having said that, this is something you can easily configure on ESXi as well as other UNIX/Linux system in terms of customizing the SSH prompt.

To change the SSH prompt on ESXi, you will need to edit /etc/profile.local configuration file and add PS1 environmental variable which controls the SSH prompt. The configuration file is automatically backed up and all changes will persist through a reboot.

If you want to enable the basic [username@hostname current-working-directory], add the following to the file:

PS1="[\u@\h:\w] "

Now when you login to your ESXi host, the SSH prompt will look like this:

You can even add colors to your SSH prompt, if you add the following to the file:

PS1="\e[0;41m[\u@\h \W]\$ \e[m"

It will look like this:

The above are just examples of the customization you can apply to the SSH prompt, for more options you can take a look at this reference or search for others online. You can also quickly test your changes by just setting the PS1 variable on the command-line and then logging in.

Since this is something that has annoyed me from time to time, I will be filing a Feature Request with engineering and hopefully we can have this as a default in the future. Thanks Jason for bringing this up!

2 thoughts on “Quick Tip - How to Change ESXi SSH Prompt

  1. With ESXi 5.5 PS1 is ‘\w \$ ‘ which is even a much bigger nag as it fills the line with the actual path.
    This leads to a very small input space on the right if you are deeper in the path (e.g. /vmfs/volumes/{datastoreXYZ) and makes it likely to get commands breaking up to another line which is awkward, ugly and shows problems with copy/paste etc.
    I wonder who the crap came up with this lousy idea.
    If I want the path in the prompt I also always add a newline so that I get a clean space to enter my commands. The sacrifice here is an extra prompt line for the sake of a better readability.
    So I either set PS1=’\W \$ ‘ or better yet PS1=’\w \n\$ ‘
    In your case I would go with PS1=’\u@\h:\w \n\$ ‘

  2. I also set TZ variable for my timezone, so cron jobs and my date command and file timestamps appear “normal”
    export TZ="AEST-10" Sets my timezone to Australian Eastern GMT+10. Note the minus, not plus, sign.

Thanks for the comment!