SSH is a very repetitively used tool in development. Save time and keystrokes with these tips and tricks.

SSH Config

Having an SSH config file is a great way to speed along the process of tunneling into a server by remembering the more exceptional connection details for you and supplying autocomplete for the ssh command.

You can also override the default id_rsa identity file used by the ssh command. Take a look at the example:

IdentityFile ~/.ssh/id_rsa_dev

# Simple Example
#
# This is a simple example.
Host cd-dev-site-01
  Hostname dev-01.example.com
  User username
  Port 22222

# Bastion or Proxy Jump
#
# This example server does not have its SSH port 22222
# open to the internet. This servers SSH port is only
# open to other servers in a closed network. We can
# use another server cd-dev-site-01 as a Bastion^1
# to SSH into that server and use the ProxyJump
# config argument to automatically SSH into a
# live-01.example.com on a connection  
Host cd-live-site-01
  Hostname dev-01.example.com
  ProxyJump [email protected]:22222
  User username
  Port 22222
  ForwardAgent yes
  
# Custom Identity File
#
# Use an identity file other than the default.
Host cd-live-site-02
  Hostname live-02.example.com
  User username
  Port 22222
  IdentityFile ~/.ssh/id_rsa_alt

Here we set the default identity file to /Users/kevindees/.ssh/id_rsa_site and we defined several ssh shortcuts. Now, when entering ssh into the terminal we will gain auto-complete for cd-dev-site-01, cd-live-site-01, and cd-live-site-02.

You ssh config file is located under your ~/.ssh/ directory. If you do not have a config file yet create one as ~/.ssh/config.

SSH Agent

Use SSH Agent. You can avoid entering your ssh password multiple times during a proxy jump by using ssh-agent with your identity file. As an added benefit ssh-agent will keep you from needing to add your identity file to your servers when you SSH into them.

Also, you can add the following to your ~/.ssh/config file:

Host *
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_rsa_alt

Github has published a great article about SSH agent on their website.

Footnotes

^1 Bastion


Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Get Involved & Explore More

an abstract painting with blue and yellow colors

Catch up on what I’ve been writing lately.

Show your gratitude.

Join Dare To Code Email List

Get emails from me on full-stack PHP development by subscribing to the Dare To Code mailing list.