How do I stop/start ssh? I've tried
/etc/init.d/ssh restart
sudo service ssh restart
sudo restart ssh
I get errors every time.
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 communityHow do I stop/start ssh? I've tried
/etc/init.d/ssh restart
sudo service ssh restart
sudo restart ssh
I get errors every time.
Use this command:
sudo systemctl restart ssh
To restart the SSH server/daemon.
Going forward with systemd
starting with Ubuntu 15.04, you now use this syntax to stop, start, or restart services:
sudo systemctl <action> <service-name>
sudo systemctl status ssh
Feb 7, 2021 at 14:27
Failed to restart ssh.service: Unit ssh.service not found.
Jul 4, 2021 at 5:08
alias sc='sudo systemctl'
quicker and matches a similar util on Windows. ;-)
Oct 11, 2021 at 1:27
It should be as simple as (tested on a fresh install with openssh-server)
sudo stop ssh
sudo start ssh
As it leverages upstart, this is The Best Way™ to do it, rather than using /etc/init.d/ssh, service
, or invoking sshd directly. Make sure to run both commands; if you get an error on stop ssh
, start ssh
anyway and see what it says—the service could already be stopped.
(I would recommend stop
/start
over restart
, unless you are trying to restart a system remotely. If ssh is already stopped, restart
will not start it.)
If those commands don't work, you are probably either experiencing a bug or have tinkered too far with your system, in which case you at least know what the problem isn't.
Since Ubuntu 15.04, Canonical no longer ships upstart by default.
Thus, the commands start
, stop
and restart
are no longer available.
The correct method for restarting the SSH service (or any other service) now is one of the two following commands:
sudo systemctl restart ssh
sudo service ssh restart
systemctl
and service
; man service
; man systemctl
; man reboot
; man shutdown
.
On Ubuntu Desktop:
First check the status of the service:
sudo service ssh status
should show: - Active: active (running)
If it's running there's no need to restart it.
If you still want to restart it, Ubuntu calls the service ssh, not sshd.
service ssh restart
But if its not Ubuntu Desktop, using CLI:
sudo systemctl restart ssh
sudo service ssh restart
The service is also controlled by upstart, and not sysvinit. So you'll find it at /etc/init/ssh.conf instead of /etc/init.d/ssh.
If you want to change some settings (e.g., the listening port, and root login permission) by editing the configuration file via command:
sudo nano /etc/ssh/sshd_config
On Ubuntu desktop, you may use gedit instead of nano:
Finally apply the changes by restarting or reloading SSH:
sudo service ssh restart
If above still doesn't work then, type this:
sudo service ssh stop
sudo service ssh start
If all above fails, try restarting your ubuntu system:
sudo reboot -f
First check to see if sshd is running using the following:
ps -ef | grep sshd
You should see something like:
root 1234 1 0 12:28 ? 00:00:00 /usr/sbin/sshd -D
If you do not see a line for /usr/sbin/sshd -D
then sshd was either never started or has crashed, which will require further troubleshooting to find out why.
If you do see that line, next run this:
cat /var/run/sshd.pid
This should print the process id of sshd, so in this case you should see:
userid@computername:~$ cat /var/run/sshd.pid
1234
If the contents of sshd.pid does not match the process id of the running instance of sshd then something has restarted it incorrectly. But whatever the details you find here should put you on the right track. Either it's crashing, being restarted incorrectly, or never being started in the first place.
I think that the Unknown instance error is because SSH is not running.
Try:
ps ax | grep sshd
To see if the SSH daemon is running or not, you should see something like:
/usr/sbin/sshd -D
In any case, just try any of these:
sudo /etc/init.d/ssh start
sudo start ssh