take changes in file sshd_config file without server reboot

I changed the configuration in:

/etc/ssh/sshd_config

but the changes were only applied after rebooting the server. How to apply changes without a reboot?


Simply restart the sshd service:

sudo service sshd restart

or:

sudo /etc/init.d/sshd restart

Just in case you are restarting remotely, the configuration should be checked first to make sure it will not fail to start:

sudo sshd -t

There's an even less intrusive way to do this, without restarting the SSH service.

From man sshd:

sshd rereads its configuration file when it receives a hangup signal, SIGHUP, by executing itself with the name and options it was started with, e.g. /usr/sbin/sshd.

So you can use a command like the following to send SIGHUP to the SSH server process:

sudo kill -SIGHUP $(pgrep -f "sshd -D")

The pgrep -f "sshd -D" part will return only the PID of the sshd daemon process that listens for new connections, since there are likely to be other PIDs for each active session that don't need the signal.


For Systemd Systems (Ubuntu default)

sudo systemctl reload sshd.service

or

 sudo systemctl reload sshd

or

 sudo /bin/systemctl reload sshd.service

For Sysvinit / Systemd (Linux from Scratch default and Unix systems)

sudo service sshd reload

or

sudo /etc/init.d/sshd reload

Ubuntu uses systemd: Here the service command passes the units: start, stop, status, and reload through to their systemctl/initctl equivalents.


sudo service ssh restart

will not do it. You need to restart sshd, not ssh:

sudo service sshd restart

As root check

service --status-all | grep ssh

I had no sshd service, but had ssh service on Ubuntu server. Then

service ssh restart