63

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.

Ben
  • 1,056

3 Answers3

96

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 192.168.178.05   # 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 192.168.178.05 on port 22:

ssh myremote
Takkat
  • 144,580
0

The SSH config file is extremely useful but requires manually editing a file. I use this Python package to automatically save the connection information at the time the ssh connection is made. https://github.com/emileindik/slosh

Similar to the sshez tool also posted:

$ pip install slosh
$ slosh ubuntu@1.1.1.1 --save-as myserver

This will perform the desired ssh connection and also create the corresponding entry in your SSH config file.

[disclaimer] I created slosh

0

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 root@example.com -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.

Oss
  • 117