OpenSSH version 7.3 introduced a very handy
Include feature, which is great for people who have to manage connection
info for multiple servers. This makes it easy for us to generate updated SSH configs via AWS CLI for the multiple EC2 instances that
serve Adafruit IO.
Here is how you can use
Include to pull in separate SSH config files from
~/.ssh/config. First, you will need to install OpenSSH version 7.3 or higher.
If you are using Linux, you will need to install version 7.3+ via your package manager (
apt-get, etc), or build it from source.
On OS X, you can do this via homebrew:
$ brew install homebrew/dupes/openssh
Confirm that you are now running 7.3 or higher by running
$ ssh -V OpenSSH_7.3p1, OpenSSL 1.0.2j 26 Sep 2016
Now you can create a new child config file in
~/.ssh using a text editor. For example, we
can create an example child config at
~/.ssh/pi_config and add configuration info just
as we would in the main SSH config file:
Host pi-1 HostName 10.0.0.10 User pi IdentityFile ~/.ssh/pi_cluster Host pi-2 HostName 10.0.0.11 User pi IdentityFile ~/.ssh/pi_cluster Host pi-3 HostName 10.0.0.12 User pi IdentityFile ~/.ssh/pi_cluster
From your main
~/.ssh/config, add the following line at the top:
You should now be able to connect to your servers as you normally would:
$ ssh pi-1
That’s it! Check out this OpenSSH feature request if you would like more info.