Learn SSH: Config File
In this article series, I will explain how to use a command-line terminal to connect to secure shell (SSH) servers, using the config file for quick access to frequently used servers, and setting up an SSH server on macOS, Ubuntu, or CentOS.
Table of Contents:
SSH config file makes it easier to connect to frequently used servers. Here, I start with a simple server setup and then explain how to setup proxy jumps.
SSH config file is located in home directory under .ssh folder:
For each server, add a block of text starting with Host followed by a memorable name for that server.
Add information like the address of the host on the following line with indentation:
Now save the file. To connect to the server, in a terminal window simply type ssh followed by the name you chose in the config file:
This is equivalent of typing the following command:
You can add the identity file location to the config file as well:
Host favorite_ssh
HostName ip_or_address_of_server
User username_at_the_server
IdentityFile ~/.ssh/my_private_key
which is equivalent of the following command:
You can add multiple servers to the config file:
Host favorite_ssh
HostName ip_or_address_of_server
User username_at_the_server
IdentityFile ~/.ssh/my_private_key
Host favorite_ssh_2
HostName ip_or_address_of_server_2
User username_at_the_server_2
IdentityFile ~/.ssh/my_private_key_2
Host favorite_ssh_3
HostName ip_or_address_of_server_3
User username_at_the_server_3
IdentityFile ~/.ssh/my_private_key_3
You can add a proxy or jump server to the config file as well and use it to connect to your favorite_ssh:
Host proxy_1
HostName ip_or_address_of_proxy_server
User username_at_proxy_server
IdentityFile ~/.ssh/proxy_server_private_key
Host favorite_ssh
HostName ip_or_address_of_server
User username_at_the_server
IdentityFile ~/.ssh/my_private_key
ProxyJump proxy_1
You can also use wildcards to apply the same setting to a range of IP addresses (10.0.* and 10.1.0.*):
Host proxy_1
HostName ip_or_address_of_proxy_server
User username_at_proxy_server
IdentityFile ~/.ssh/proxy_server_private_key
Host 10.0.*
User username_at_these_servers
IdentityFile ~/.ssh/my_private_key_for_all_the_servers
ProxyJump proxy_1
Host 10.1.0.*
ProxyJump proxy_1
Now to connect to a server with IP address of 10.0.0.1, you can use the following command:
Or to connect to 10.1.0.2 with a username my_user, you can run:
Let me know your questions and comments in the comment section.