If you are accessing remote servers frequently using ssh. You can save your ssh configuration (server Ip, port, user, key) to a file and reuse this configuration without entering these details repeatedly. This provides cleaner approach for ssh commands than creating command aliases (ex: alias qa-services='ssh -i ~/.ssh/key/services.pem ubuntu@124.17.27.185 -p 22' )
SSH client obtains configuration data from the following sources in the bellow order:
1. command-line options
2. user's configuration file (~/.ssh/config)
3. system-wide configuration file (/etc/ssh/ssh_config)
We are going set the configuration in user's configuration file
Create a ssh client user configuration file in '~/.ssh/' directory with file name 'config'
Add following content to the file (~/.ssh/config)
SSH client obtains configuration data from the following sources in the bellow order:
1. command-line options
2. user's configuration file (~/.ssh/config)
3. system-wide configuration file (/etc/ssh/ssh_config)
We are going set the configuration in user's configuration file
Create a ssh client user configuration file in '~/.ssh/' directory with file name 'config'
Add following content to the file (~/.ssh/config)
Host qa-services
HostName 124.17.27.185
User ubuntu
Port 22
IdentityFile ~/.ssh/key/services.pem
Host prod-db
HostName 124.21.151.26
User ubuntu
Port 22
IdentityFile ~/.ssh/key/db.pem
Configuration keywords :
HostName - hostname or public ip address.
User - Specifies the user to log in as.
Port - Specifies the port number to connect on the remote host.
IdentityFile - Specifies a file from which the user's DSA, ECDSA, Ed25519 or RSA authentication identity is read.
Save the config file. Now you can access to your servers with simple commands like below.
ssh qa-services
ssh prod-db