The ~/.ssh/config file configures SSH settings for connecting to remote servers. It can be a powerful tool for customizing your SSH experience and can be used to set options for individual hosts or all hosts.
Here is a tutorial on some of the most common options used in the ~/.ssh/config file:
Host: This option specifies the hostname or alias for the host you want to configure. You can use a fully qualified domain name, an IP address, or a custom alias. For example:
Host example.com
Host db-server
Host 192.168.1.100
HostName: This option is used to specify the actual hostname or IP address of the remote server. This can be useful if you want to use a custom alias in your Host section. For example:
Host example
HostName example.com
User: This option specifies the username you want to use when connecting to the remote server. For example:
Host example
HostName example.com
User myusername
IdentityFile: This option specifies the path to the private key you want to use when connecting to the remote server. For example:
Host example
HostName example.com
User myusername
IdentityFile ~/.ssh/myprivatekey
Port: This option specifies the port number you want to use when connecting to the remote server. By default, SSH uses port 22, but some servers may use a different port number. For example:
Host example
HostName example.com
User myusername
IdentityFile ~/.ssh/myprivatekey
Port 2222
ProxyCommand: This option is used to specify a command that should be run before connecting to the remote server. This can be used to connect to a server through a proxy server, or to perform other advanced networking tasks. For example:
Host example
HostName example.com
User myusername
IdentityFile ~/.ssh/myprivatekey
ProxyCommand ssh -W %h:%p proxy-server
In this example, we're using the ssh command with the -W option to connect to the remote server through a proxy server. These are just a few of the most common options in the ~/.ssh/config file. Many other options are available, including options for controlling the SSH connection timeout, specifying options for SSH tunneling, and more. You can check the ssh_config man page by typing man ssh_config in your terminal for a complete list of options.
Comments