Is it possible to set the title of an ssh connection by just changing something on my local machine?
I mean I want ubuntu@ip-10-50-10-152
in the following picture to be changed to a name I like.
And I don't want to change any settings on the remote machine.
The IP address is difficult to remember, how can I change it to a more readable name?
I want to map each IP address to a different name.
The remote machines in my case are lots of Amazon EC2 instances. Some of them only exist for a few days. And new ec2
s get created frequently.
I use iTerm2 as my macOS terminal. And I couldn't find any plugin that does the thing I want.
Or is there a better ssh management tool that can display custom text on the title of an ssh connection?
Best Answer
The best way (IMO) is to set the necessary variables in your
bash_profile
of your remote machine. I understand you don't want to modify anything on your remote but it's important to note that what you are doing is setting the environment variablePROMPT_COMMAND
When logged in to your remote, issue the command
echo $HOSTNAME
andecho $PROMPT_COMMAND
. More than likely, you will get the hostname of your machine and the second will come up blank meaning that it's unset.Setting the Title
Edit your
.bash_profile
found in your home directory on the remote. This is your file and will not affect the rest of the system. Add the following line:The
\033]0;
(Esc 0;
) is the escape code to set the title. The${HOSTNAME}
is the name of your machine.Save your profile, log out and log back in and your title bar should now reflect your hostname.
Connecting via hostname vs IP
There are two ways to do this:
/etc/hosts
fileI prefer to set this in DNS so that the name will be available to all computers across your network. Going under the assumption that you have a "consumer grade" router (like Linksys or Netgear), you just have to add the hostname to your DHCP static lease (see your router documentation for specifics)
If you're on a corporate network, the Network Admin can add a record to the DNS server pointing to your host.
If those two options aren't available, you can simply edit your local
/etc/hosts
file (needroot
permissions. Below is my/etc/hosts
used as an example:I added the hostname
fatjoe
to the end of thehosts
file. When I save and exit, if I typeping fatjoe
it immediately begins to ping the correct IP - the change is immediate.