Ask Ubuntu is a question and answer site for Ubuntu users and developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

There are a few SSH destinations I will frequently be connecting to and I'm wondering if rather than remember the IP address I can create a host alias for them. I'd like to be able to use...

ssh -p xx user@domain.ssh

I've tried establishing this host in /etc/hosts and unless there's a service I needed to restart it had no effect.

share|improve this question
This should work fine. Paste the the entry in /etc/hosts file. Can you actually ping the host using the alias (if firewall is not block icmp)? – Terry Wang Feb 17 '13 at 23:02
up vote 32 down vote accepted

Sometimes it is more convenient to have configuration files in our home directory. This avoids having to be root to edit files, and also they can be configured in a way that other users have no access to this data. In addition this configuration will be backed up with our home and also will "survive" an OS upgrade.

To do so we can make a ssh configuration file nano ~/.ssh/config where we can put in valuable information for a connection. A simple entry may have the following content:

Host myremote             # any name for the host
HostName   # IP, .local, or hostname if defined
User username             # your username
Port 22                   # port to listen

There are many other options including user and authentication you can give here (see manpage for ssh_config)

We then can simply issue the following to connect to on port 22:

ssh myremote
share|improve this answer
And I can sync it with Ubuntu One! Thanks! – Webnet Feb 22 '13 at 4:55
Note that you can also assign more than one host identifier, e.g. Host myremote That way your settings will be used when you connect using the actual host name as well. – Chris Aug 5 '13 at 5:39
Don't forget to add parameter 'User' (if there is need) into your config file! – Ros Nov 13 '14 at 10:04

You can use a ruby gem called sshez. It interfaces your config file and makes adding ssh aliases easier.

Install gem

gem install sshez

Add an alias my_alias for example

sshez add my_alias -p 1022

Remove my_alias from your config file

sshez remove my_alias

List aliases

sshez list

Now you can connect to ssh my_alias without worrying about editing your config file yourself.

share|improve this answer
Looks useful. But the command to add an alias gives me: Invalid input. Use -h for help – mwfearnley Jun 20 at 10:34
It is changed to sshez add alias_name... just updated the answer – Mohamed Osama Jun 20 at 14:29
latest docs – Mohamed Osama Jun 20 at 14:29

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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