fzf + SSH Config Hosts

󰃭 2024-10-10

SSH has a nice feature in which you can store aliases for frequently accessed hosts.

Combining this with fzf, you can have a nice quick shortcut to quickly pick a server to connect to into.

This comes in very handy if you need to ssh into different servers and forget their IP or hostname often.

Here’s a sample ssh config file (normally located at ~/.ssh/config):

# see https://man.openbsd.org/ssh_config.5 for all the available configuration settings
Host runner-staging
    HostName 10.0.0.8
    User alpha

Host runner-production
    HostName 10.0.0.9
    User beta

Host mainframe
    HostName mainframe.computer.world
    User hackerman

Here’s a small shell function which calls fzf with the hostnames configured and allows you to pick one to connect to:

s () {
  local server
  server=$(grep -E '^Host ' ~/.ssh/config | awk '{print $2}' | fzf)
  if [[ -n $server ]] then
    ssh $server
  fi
}

Add this function to your .bashrc (or .zshrc, or whichever config file for your shell) and reload the configuration.

Now, you can quickly ssh into mainframe by typing s:

$ s

# fzf will allow to quickly search and pick your server
> runner-staging
  runner-production
  mainframe
  3/3 ──────────

# press enter and you will be connected!
[hackerman@mainframe.computer.world ~]$ 


More posts like this

My top tips for junior developers

󰃭 2020-04-18 | #career #mentoring #tips

Last year, I was tasked with mentoring an intern. It wasn’t my first time mentoring, but it was my first time being fully in charge of a new employee. In the end, the intern was hired as a full-time employee, and I thought it would be helpful to compile all the advice I’ve been giving them, for future reference. The following tips come from my experience and my way of working, as well as my own personal opinions.

Continue reading 


Free Static Web Hosts for Frontend Developers

󰃭 2022-01-15 | #css #html #javascript #tips #tutorials

Nowadays it’s very easy to publish on the web for free. There are countless blogging platforms and website creators. But these platforms usually end up controlling your content. Sometimes you cannot even export your own data! The other extreme is to set up your own server by yourself. Buy a VPS (virtual private server) or a shared hosting somewhere, install a web server, and upload your files. This is a lot of work already!

Continue reading 