63

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.

1
  • 3
    IMPORTANT - do not install openssh-server on your local machine (laptop/desktop) unless you wish to permit incoming connections from other remote machines ... you do NOT need this package to ssh to other machines since ubuntu comes with the Client half of this Server Aug 29, 2016 at 1:32

7 Answers 7

64

15.04 and newer:

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>
3
  • 3
    Afterwards, check the status of the SSH daemon using sudo systemctl status ssh Feb 7, 2021 at 14:27
  • 3
    On ubuntu 18 I get 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
19

Command for restart ssh service is:

sudo service ssh restart
15

Pre 15.04:

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.

1
6

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
1
3

On Ubuntu Desktop:

First check the status of the service:

sudo service ssh status

enter image description here

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:

enter image description here

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
2

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.

2

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

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .