I am on Ubuntu 16.04 LTS.
I had ssh server running and it worked properly for many months, until one time when something cause it to fail.
Now, I can't do regular Ubuntu updates from Canonical. I can't run apt-get
updates. E.g.
$ sudo apt-get upgrade python3
Reading package lists... Done
Building dependency tree
Reading state information... Done
python3 is already the newest version (3.5.1-3).
Calculating upgrade... Done
The following packages were automatically installed and are no longer required:
containerd libllvm5.0 libpaps0 paps python3-rlp runc swarm
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
1 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] Y
Setting up openssh-server (1:7.2p2-4ubuntu2.6) ...
insserv: warning: script 'S02ssh-start.sh' missing LSB tags and overrides
insserv: warning: script 'ssh-start.sh' missing LSB tags and overrides
Job for ssh.service failed because the control process exited with error code. See "systemctl status ssh.service" and "journalctl -xe" for details.
invoke-rc.d: initscript ssh, action "restart" failed.
● ssh.service - OpenBSD Secure Shell server
Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Mon 2019-01-28 14:10:23 EST; 6ms ago
Process: 79047 ExecStart=/usr/sbin/sshd -D $SSHD_OPTS (code=exited, status=255)
Process: 79038 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)
Main PID: 79047 (code=exited, status=255)
Jan 28 14:10:23 joeslinux systemd[1]: Starting OpenBSD Secure Shell server...
Jan 28 14:10:23 joeslinux systemd[1]: ssh.service: Main process exited, code=exited, status=255/n/a
Jan 28 14:10:23 joeslinux systemd[1]: Failed to start OpenBSD Secure Shell server.
Jan 28 14:10:23 joeslinux systemd[1]: ssh.service: Unit entered failed state.
Jan 28 14:10:23 joeslinux systemd[1]: ssh.service: Failed with result 'exit-code'.
dpkg: error processing package openssh-server (--configure):
subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
openssh-server
E: Sub-process /usr/bin/dpkg returned an error code (1)
When I check the status of my ssh server,
sudo service ssh status
● ssh.service - OpenBSD Secure Shell server
Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Mon 2019-01-28 14:10:23 EST; 2min 37s ago
Process: 79047 ExecStart=/usr/sbin/sshd -D $SSHD_OPTS (code=exited, status=255)
Process: 79038 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)
Main PID: 79047 (code=exited, status=255)
Jan 28 14:10:23 joeslinux systemd[1]: Starting OpenBSD Secure Shell server...
Jan 28 14:10:23 joeslinux systemd[1]: ssh.service: Main process exited, code=exited, status=255/n/a
Jan 28 14:10:23 joeslinux systemd[1]: Failed to start OpenBSD Secure Shell server.
Jan 28 14:10:23 joeslinux systemd[1]: ssh.service: Unit entered failed state.
Jan 28 14:10:23 joeslinux systemd[1]: ssh.service: Failed with result 'exit-code'.
Thank you for help.
-- edit 1/28/19 --
I don't know if this helps, but I have in /etc/init.d
the following 2 scripts...
ssh.sh
which appears to be the Ubuntu provided shell script
and
ssh-start.sh
which contains
sudo service ssh start
in addition to all that, I also have /etc/systemd/system/sshd.service
, which is a link to /lib/systemd/system/ssh.service
which contains:
[Unit]
Description=OpenBSD Secure Shell server
After=network.target auditd.service
ConditionPathExists=!/etc/ssh/sshd_not_to_be_run
[Service]
EnvironmentFile=-/etc/default/ssh
ExecStartPre=/usr/sbin/sshd -t
ExecStart=/usr/sbin/sshd -D $SSHD_OPTS
ExecReload=/usr/sbin/sshd -t
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartPreventExitStatus=255
Type=notify
[Install]
WantedBy=multi-user.target
Alias=sshd.service
------------ edit February 18, 2019 -----------------------
Still having issues. They are now causing things like apt install to fail.
Thanks, Andrew Dunn, but I researched that answer and solution didn't work work me.
Here is output of journalctl -xe
joe@joeslinux:~$ journalctl -xe
Feb 18 21:42:34 joeslinux start-mining-monero-minergate-cpu.sh[1640]: [2019-02-18 21:42:34] Diff: 8782 CPU/GPU: 953.8 H/s
Feb 18 21:42:35 joeslinux start-mining-monero-minergate-cpu.sh[1640]: [2019-02-18 21:42:35] Diff: 8782 CPU/GPU: 964.0 H/s
Feb 18 21:42:36 joeslinux sudo[5685]: joe : TTY=pts/6 ; PWD=/home/joe ; USER=root ; COMMAND=/usr/sbin/service ssh restart
Feb 18 21:42:36 joeslinux sudo[5685]: pam_unix(sudo:session): session opened for user root by (uid=0)
Feb 18 21:42:36 joeslinux systemd[1]: Stopped OpenBSD Secure Shell server.
-- Subject: Unit ssh.service has finished shutting down
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit ssh.service has finished shutting down.
Feb 18 21:42:36 joeslinux systemd[1]: Starting OpenBSD Secure Shell server...
-- Subject: Unit ssh.service has begun start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit ssh.service has begun starting up.
Feb 18 21:42:36 joeslinux sshd[5703]: error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
Feb 18 21:42:36 joeslinux sshd[5703]: error: Bind to port 22 on :: failed: Address already in use.
Feb 18 21:42:36 joeslinux sshd[5703]: fatal: Cannot bind any address.
Feb 18 21:42:36 joeslinux systemd[1]: ssh.service: Main process exited, code=exited, status=255/n/a
Feb 18 21:42:36 joeslinux systemd[1]: Failed to start OpenBSD Secure Shell server.
-- Subject: Unit ssh.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit ssh.service has failed.
--
-- The result is failed.
Feb 18 21:42:36 joeslinux systemd[1]: ssh.service: Unit entered failed state.
Feb 18 21:42:36 joeslinux systemd[1]: ssh.service: Failed with result 'exit-code'.
Feb 18 21:42:36 joeslinux sudo[5685]: pam_unix(sudo:session): session closed for user root
Note the: error: Bind to port 22... lines.
This issue is caused by a bad configuration of /etc/ssh/sshd_config file. When the service try to launch it does not recognize every fields of this configuration file. In order to solve this issue, you must use the tool
In case /etc/ssh/sshd_config was wrong, this would show wrong parameters with lines.
You must correct this issues and then restart the service:
If this happens right after installing Ubuntu Server, press Ctrl + F2 or F3,...F7 to switch to another TTY if you don't have a free terminal. It will ask you to login. Then, you should be able to run
sudo ssh-keygen -A
and then reboot and it should be able to start the service.same problem with Ubuntu 16.04
Good Luck
I had this problem, the issue was SSH daemon starting prior to the network being ready. When the network is not ready, sshd exits with code 255 (this is present in OP's journalctl -xe output), which prevents systemd restarting sshd on-failure as is specified in the configuration, because of the subsequent configuration directive:
RestartPreventExitStatus=255
This can be corrected by commenting out that configuration directive and adding the following configuration directive to the
[Service]
section afterRestart=on-failure
:RestartSec=30
You can set it to a value other than 30 if you so desire, which tells systemd to attempt restarting the service after the specified number of seconds upon failure.
This allows the service to restart after networking has been fully initialized, and configured if you've set it up to use DHCP.
I do see that your issue is not exactly the same as mine. Try binding sshd to a specific configured ip address in /etc/ssh/sshd_config:
ListenAddress x.x.x.x
Run
ifconfig -a
to get the IP of the network interface you want to connect over.I had the same problem, I used workaround 2 from this link SSH Server stops working after reboot, caused by missing /var/run/sshd
I think the issue for me is my kernal is too old, best of luck
What solved this problem for my Ubuntu 18.04 was to remove the following line in
/etc/ssh/sshd_config
and then restarting the sshd service with
It happened to me when i wanted to disable SSH key login. First i set this:
Then the error happened then I also added in the file above:
It seemed it fixed the error.