** Description changed:

+ [Impact]
+ 
+ sshd doesn't check the configuration when reloading.
+ 
+ If a user generates an invalid configuration file, sshd will shut down
+ and not come back up when the user issues a reload.
+ 
+ 
+ [Test Case]
+ 
+ Copied existing debian fix from 7f06034b1c4ba72dac028ed7879c89b6ee073293
+ in pkg/ubuntu/artful to check sshd_config for errors before starting or
+ reloading the service.
+ 
+ PPA: ppa:kstenerud/sshd-reload-1771340
+ 
+ 
+ Steps to Test
+ -------------
+ 
+ $ lxc launch ubuntu:xenial tester
+ $ lxc exec tester bash
+ 
+ # echo "blah blah" >>/etc/ssh/sshd_config
+ # systemctl reload sshd
+ Job for ssh.service failed because the control process exited with error 
code. See "systemctl status ssh.service" and "journalctl -xe" for details.
+ # systemctl status ssh.service
+ ● ssh.service - OpenBSD Secure Shell server
+    Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: 
enabled)
+    Active: failed (Result: exit-code) since Tue 2018-08-21 18:15:41 UTC; 19s 
ago
+ 
+ * The service should have checked the config file, failed to reload, but
+ remained active in its current configuration. In this case ssh has shut
+ down.
+ 
+ Remove the last line "blah blah" in /etc/ssh/sshd_config, then:
+ 
+ # systemctl start sshd
+ # add-apt-repository -y ppa:kstenerud/sshd-reload-1771340
+ # apt update
+ # apt upgrade -y
+ # echo "blah blah" >>/etc/ssh/sshd_config
+ # systemctl reload sshd
+ Job for ssh.service failed because the control process exited with error 
code. See "systemctl status ssh.service" and "journalctl -xe" for details.
+ # systemctl status ssh.service
+ ● ssh.service - OpenBSD Secure Shell server
+    Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: 
enabled)
+    Active: active (running) (Result: exit-code) since Tue 2018-08-21 18:39:03 
UTC; 31s ago
+ 
+ * Service is active (running), which is as it should be.
+ 
+ 
+ [Regression Potential]
+ 
+ This code will only trigger on an invalid configuration file (in which
+ case sshd would not load anyway), so there should be no regressions.
+ 
+ 
+ [Original Description]
+ 
  After adding some lines to /etc/ssh/sshd_config I tried to reload the
  configuration with the command:
  
  ```
  sudo systemctl reload sshd
  ```
  
  No error message was returned. So I assumed that the sshd was running
  with the current config. But `sudo systemctl status sshd` told me that
  the service failed due to a wrong option in /etc/ssh/sshd_config. Please
  see the following output:
  
  ~~~
  :~$ sudo vim /etc/ssh/sshd_config
  :~$ sudo systemctl reload sshd
  :~$ sudo systemctl status sshd
  ● ssh.service - OpenBSD Secure Shell server
-    Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: 
enabled)
-    Active: failed (Result: exit-code) since Di 2018-05-15 10:00:04 CEST; 8s 
ago
-   Process: 12089 ExecReload=/bin/kill -HUP $MAINPID (code=exited, 
status=0/SUCCESS)
-   Process: 7536 ExecStart=/usr/sbin/sshd -D $SSHD_OPTS (code=exited, 
status=255)
-  Main PID: 7536 (code=exited, status=255)
+    Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: 
enabled)
+    Active: failed (Result: exit-code) since Di 2018-05-15 10:00:04 CEST; 8s 
ago
+   Process: 12089 ExecReload=/bin/kill -HUP $MAINPID (code=exited, 
status=0/SUCCESS)
+   Process: 7536 ExecStart=/usr/sbin/sshd -D $SSHD_OPTS (code=exited, 
status=255)
+  Main PID: 7536 (code=exited, status=255)
  ~~~
  
  I would expect that a warning or error message is returned when the
  service fails while reloading it's configuration.
  
  A fix for this behaviour would be appreciated.
  
  ProblemType: Bug
  DistroRelease: Ubuntu 16.04
  Package: openssh-server 1:7.2p2-4ubuntu2.4
  ProcVersionSignature: Ubuntu 3.13.0-112.159-generic 3.13.11-ckt39
  Uname: Linux 3.13.0-112-generic x86_64
  ApportVersion: 2.20.1-0ubuntu2.17
  Architecture: amd64
  Date: Tue May 15 10:18:25 2018
  InstallationDate: Installed on 2013-01-10 (1950 days ago)
  InstallationMedia: Ubuntu-Server 12.04.1 LTS "Precise Pangolin" - Release 
amd64 (20120817.3)
  SourcePackage: openssh
  UpgradeStatus: Upgraded to xenial on 2017-03-12 (428 days ago)
  mtime.conffile..etc.pam.d.sshd: 2017-03-13T19:59:01.965420

** Description changed:

  [Impact]
  
  sshd doesn't check the configuration when reloading.
  
  If a user generates an invalid configuration file, sshd will shut down
  and not come back up when the user issues a reload.
- 
  
  [Test Case]
  
  Copied existing debian fix from 7f06034b1c4ba72dac028ed7879c89b6ee073293
  in pkg/ubuntu/artful to check sshd_config for errors before starting or
  reloading the service.
  
  PPA: ppa:kstenerud/sshd-reload-1771340
- 
  
  Steps to Test
  -------------
  
  $ lxc launch ubuntu:xenial tester
  $ lxc exec tester bash
  
  # echo "blah blah" >>/etc/ssh/sshd_config
  # systemctl reload sshd
  Job for ssh.service failed because the control process exited with error 
code. See "systemctl status ssh.service" and "journalctl -xe" for details.
  # systemctl status ssh.service
  ● ssh.service - OpenBSD Secure Shell server
-    Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: 
enabled)
-    Active: failed (Result: exit-code) since Tue 2018-08-21 18:15:41 UTC; 19s 
ago
+    Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: 
enabled)
+    Active: failed (Result: exit-code) since Tue 2018-08-21 18:15:41 UTC; 19s 
ago
  
  * The service should have checked the config file, failed to reload, but
  remained active in its current configuration. In this case ssh has shut
  down.
  
  Remove the last line "blah blah" in /etc/ssh/sshd_config, then:
  
  # systemctl start sshd
  # add-apt-repository -y ppa:kstenerud/sshd-reload-1771340
  # apt update
  # apt upgrade -y
  # echo "blah blah" >>/etc/ssh/sshd_config
  # systemctl reload sshd
  Job for ssh.service failed because the control process exited with error 
code. See "systemctl status ssh.service" and "journalctl -xe" for details.
  # systemctl status ssh.service
  ● ssh.service - OpenBSD Secure Shell server
-    Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: 
enabled)
-    Active: active (running) (Result: exit-code) since Tue 2018-08-21 18:39:03 
UTC; 31s ago
+    Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: 
enabled)
+    Active: active (running) (Result: exit-code) since Tue 2018-08-21 18:39:03 
UTC; 31s ago
  
  * Service is active (running), which is as it should be.
- 
  
  [Regression Potential]
  
  This code will only trigger on an invalid configuration file (in which
  case sshd would not load anyway), so there should be no regressions.
+ 
+ [Other Info]
+ 
+ autopkgtest [13:45:46]: test regress: -----------------------]
+ autopkgtest [13:45:47]: test regress:  - - - - - - - - - - results - - - - - 
- - - - -
+ regress              PASS
+ autopkgtest [13:45:47]: @@@@@@@@@@@@@@@@@@@@ summary
+ regress              PASS
  
  
  [Original Description]
  
  After adding some lines to /etc/ssh/sshd_config I tried to reload the
  configuration with the command:
  
  ```
  sudo systemctl reload sshd
  ```
  
  No error message was returned. So I assumed that the sshd was running
  with the current config. But `sudo systemctl status sshd` told me that
  the service failed due to a wrong option in /etc/ssh/sshd_config. Please
  see the following output:
  
  ~~~
  :~$ sudo vim /etc/ssh/sshd_config
  :~$ sudo systemctl reload sshd
  :~$ sudo systemctl status sshd
  ● ssh.service - OpenBSD Secure Shell server
     Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: 
enabled)
     Active: failed (Result: exit-code) since Di 2018-05-15 10:00:04 CEST; 8s 
ago
    Process: 12089 ExecReload=/bin/kill -HUP $MAINPID (code=exited, 
status=0/SUCCESS)
    Process: 7536 ExecStart=/usr/sbin/sshd -D $SSHD_OPTS (code=exited, 
status=255)
   Main PID: 7536 (code=exited, status=255)
  ~~~
  
  I would expect that a warning or error message is returned when the
  service fails while reloading it's configuration.
  
  A fix for this behaviour would be appreciated.
  
  ProblemType: Bug
  DistroRelease: Ubuntu 16.04
  Package: openssh-server 1:7.2p2-4ubuntu2.4
  ProcVersionSignature: Ubuntu 3.13.0-112.159-generic 3.13.11-ckt39
  Uname: Linux 3.13.0-112-generic x86_64
  ApportVersion: 2.20.1-0ubuntu2.17
  Architecture: amd64
  Date: Tue May 15 10:18:25 2018
  InstallationDate: Installed on 2013-01-10 (1950 days ago)
  InstallationMedia: Ubuntu-Server 12.04.1 LTS "Precise Pangolin" - Release 
amd64 (20120817.3)
  SourcePackage: openssh
  UpgradeStatus: Upgraded to xenial on 2017-03-12 (428 days ago)
  mtime.conffile..etc.pam.d.sshd: 2017-03-13T19:59:01.965420

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1771340

Title:
  sshd failed on config reload

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/openssh/+bug/1771340/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to