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?
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It only takes a minute to sign up.
Sign up to join this communitySimply 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.
sshd
processes. sudo pkill -HUP -f "sshd -D"
is a tempting alternative, but then pkill signals its own sudo
parent since its full command line matches its own search pattern. You can come up with a pattern that doesn't match itself like ... -f "sshd -[D]
, but that obfuscates things a bit. I think the pgrep method is easier for learners to wrap their heads around.
sudo systemctl reload sshd.service
or
sudo systemctl reload sshd
or
sudo /bin/systemctl reload sshd.service
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
sudo service ssh restart
works great, whereas sudo service sshd restart
reports "sshd: unrecognized service". Not sure why this varies though...
Jan 15, 2016 at 22:22
As root check
service --status-all | grep ssh
I had no sshd
service, but had ssh
service on Ubuntu server. Then
service ssh restart
Reload may be a better alternative to restart
sudo service sshd reload
under the hood it sends HUP
signal to sshd daemon process almost the same way Steven K already answered. The difference is that this variant uses killproc
function instead of kill
command directly in order to send the signal in even more precise way (to reduce possible errors of sending signals to wrong processes).
The configuration is reread without restarting/stopping the service.
Of course it worth to find out how exactly SSH deamon is called actually as others discussed.
sudo service ssh restart
to restart the service to take effect. But remember if you're connected through SSH, your session will be terminated.