I’ve been sort of passively looking out for something like this for a while. Here’s the problem: there are a lot of remote servers I may want to SSH into at any given time, and I am not going to remember all of their usernames or IP addresses. Not gonna happen.
I’ve been dealing with this by creating custom aliases. So I put something like
this in my ~/.bash_profile
:
alias 'eug'='ssh pair@some.ip.address'
Then, whenever I want to connect to Eugene’s server so we can pair program, I
just type eug
and hit enter, and I’m there. Not bad! It even tab-completes.
Not great either. It’s hard to keep track of them. I can type alias
at any
time to list all of the defined aliases, and that’s pretty sweet, but it
includes several things, not just ssh aliases. I’ve kind of wanted a tool that
was more tailored to this job.
Sooo, enter storm. I found it via one thing well, a sweet blog for nerdy stuff like this.
Storm lets you define aliases to remote servers like this:
storm add eug pair@some.ip.address
Once you do that, you just type ssh eug
to connect. It has some other helpful
subcommands like storm list
to tell you all of your aliases even storm web
to spin up a nice local web server to provide a web interface for managing your
aliases…
Hey, wait a second. Somehow it’s hooking into the normal main ssh
command!
After some poking around, I found that it’s saving the information in
~/.ssh/config
as a plain text configuration file that looks like this:
Host eug
hostname some.ip.address
user pair
port 22
And that I could’ve been using a similarly-structured file all along, and didn’t really need storm at all!
Hot dog.
Well, I’m going to use it anyway because it has a sweet interface and I’m kind of just grateful to have learned something from it? I’m guilt-tripping myself into using it.