Originally posted at hoelz.ro
Let's say that you have a server you SSH into very often. Let's also say that
sshd on that server is running on a non-standard port to avoid annoying scanners (we'll using 53718 in this example). To SSH into this server, you run the following:
$ ssh -p 53718 email@example.com
What a mouthful! There's got to be a way to avoid typing that much! A technique I've often seen people use is to create a shell alias for this:
$ alias example='ssh -p 53718 firstname.lastname@example.org' # in bash
So now all I'd have to do is run
example. Piece of cake, right?
But what if you're using
git remote add? Or Vim's netrw plugin? Suddenly your simple shell alias doesn't seem so cool!
However, there is a solution to this! Enter your SSH config file.
Your SSH config file, located at
~/.ssh/config, can do a lot of cool things. To replicate our example above, we'd add this to our configuration:
Host example HostName example-server.com User rob Port 53718
Now all I need to do is
ssh example, and voilà! It works! It's four characters longer than the alias, but the shortcut is applied to the following commands as well:
scp example:that-important-file.txt . sftp example rsync -ar example:my-project/ . git remote add example ssh://example/~/my-project vim scp://example/that-important-file.txt
If you're interested in shortening the Git example even further, see my blog post about it.
Your SSH configuration file is very powerful; I recommend checking out
man ssh_config for more options to play with!