Monday, 27 March 2017

Difference between ssh_config and sshd_config

When we work on Linux system, we love to play with SSH program often. We are configuring the SSH client and SSH daemon on our Linux system to make it work properly (as per our requirement). In each Linux distribution, there are 2 configuration files ssh_config and sshd_config for SSH program.
Have you ever thought, what is the difference between these 2 files?
Don’t worry!!! I will tell you the difference between ssh_config and sshd_config.

ssh_config:
This file is for the ssh client on the host machine that you are running.
For example, if you want to ssh to another remote host machine, you use a SSH client. Every settings for this SSH client will be using ssh_config, such as port number, protocol version and encryption/MAC algorithms, etc.

sshd_config:
This file is for the sshd daemon (the program that listens to any incoming connection request to the SSH port) on the host machine.
For example, if someone wants to connect to your host machine via SSH, their SSH client settings must match your sshd_config settings in order to communicate with you, such as port number, version and so on.


Like most of the time, we change the SSH port number for security reason. Take an example as follows:

For the SSH port number, ssh_config is manually set to be 1000 (decided by the remote host), sshd_config is set to be 5555. If anyone wants to connect to your host, they must set their SSH client port always to 1000. However, you will always use port 5555 as the default port (instead of the 22) to connect to a remote machine. If the remote machine uses another port or the standard port, you need to specify the port number in the command line, e.g., “ssh remote_host_ip -p 22”

No comments: