4

Can't connect sshd in Debian 10 "Buster", catching errors as follows, while connecting:

$ ssh -p 2222 [email protected] ssh_exchange_identification: read: Connection reset by peer 

Checking those services, got following errors:

● sshd.service - OpenBSD Secure Shell server Loaded: loaded (/etc/systemd/system/sshd.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2019-10-22 18:10:51 -03; 13min ago Process: 559 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS) Main PID: 606 (sshd) Tasks: 1 (limit: 2304) Memory: 2.3M CGroup: /system.slice/sshd.service └─606 /usr/sbin/sshd -D Oct 22 18:10:50 ffurtpc systemd[1]: Starting OpenBSD Secure Shell server... Oct 22 18:10:51 ffurtpc sshd[606]: Server listening on 0.0.0.0 port 22. Oct 22 18:10:51 ffurtpc sshd[606]: error: Bind to port 22 on :: failed: Address already in use. Oct 22 18:10:51 ffurtpc systemd[1]: Started OpenBSD Secure Shell server. Oct 22 18:14:26 ffurtpc sshd[1514]: Connection closed by authenticating user friedrich 192.168.12.73 port 49880 [preauth] Oct 22 18:23:45 ffurtpc sshd[1583]: fatal: Missing privilege separation directory: /run/sshd 

Already tried to manage it with xinetd package, setting it to port 2222, while OpenBSD Secure Shell server keeps listening port 22, as follows:

● xinetd.service - LSB: Starts or stops the xinetd daemon. Loaded: loaded (/etc/init.d/xinetd; generated) Active: active (running) since Tue 2019-10-22 18:10:55 -03; 15min ago Docs: man:systemd-sysv-generator(8) Process: 722 ExecStart=/etc/init.d/xinetd start (code=exited, status=0/SUCCESS) Tasks: 1 (limit: 2304) Memory: 4.5M CGroup: /system.slice/xinetd.service └─755 /usr/sbin/xinetd -pidfile /run/xinetd.pid -stayalive -inetd_compat -inetd_ipv6 Oct 22 18:10:56 ffurtpc xinetd[755]: Reading included configuration file: /etc/xinetd.d/echo-udp [file=/etc/xinetd.d/echo-udp] [line=26] Oct 22 18:10:56 ffurtpc xinetd[755]: Reading included configuration file: /etc/xinetd.d/servers [file=/etc/xinetd.d/servers] [line=14] Oct 22 18:10:56 ffurtpc xinetd[755]: Reading included configuration file: /etc/xinetd.d/services [file=/etc/xinetd.d/services] [line=13] Oct 22 18:10:56 ffurtpc xinetd[755]: Reading included configuration file: /etc/xinetd.d/sshd [file=/etc/xinetd.d/sshd] [line=13] Oct 22 18:10:56 ffurtpc xinetd[755]: Reading included configuration file: /etc/xinetd.d/time [file=/etc/xinetd.d/time] [line=16] Oct 22 18:10:56 ffurtpc xinetd[755]: Reading included configuration file: /etc/xinetd.d/time-udp [file=/etc/xinetd.d/time-udp] [line=28] Oct 22 18:10:56 ffurtpc xinetd[755]: 2.3.15.3 started with libwrap loadavg labeled-networking options compiled in. Oct 22 18:10:56 ffurtpc xinetd[755]: Started working: 1 available service Oct 22 18:14:22 ffurtpc sshd[1512]: Connection closed by authenticating user friedrich 192.168.12.73 port 35954 [preauth] Oct 22 18:23:43 ffurtpc sshd[1582]: fatal: Missing privilege separation directory: /run/sshd 

Any ideas?

2 Answers 2

4

Had similar error here, it looks that sshd is failing to create /run/sshd directory while booting up, so managed here to do it via script, as follows:

Create a sshddir script with following content in /etc/init.d/:

#!/bin/sh ### BEGIN INIT INFO # Provides: sshddir # Required-Start: $all # Required-Stop: $network # Should-Start: $network # Default-Start: 3 4 5 # Default-Stop: 0 1 2 6 # Short-Description: Sshd /run/sshd Directory # Description: Intended to create /run/sshd directory for Sshd. ### END INIT INFO mkdir -p /run/sshd chmod -R 755 /run/sshd 

$ sudo chmod 755 /etc/init.d/sshddir

$ sudo update-rc.d sshddir defaults

That way, may reboot and access it.

3
  • Didn't worked here, only could run it via systemd proper service. Commented Oct 23, 2019 at 21:51
  • That stoped working here too after a few reboots. May please post it as answer? Commented Oct 23, 2019 at 21:53
  • That started to generate error here too, already managed to repair it, have a look. Occurred that was missing Required-Start:, Required-Stop:, Should-Start: entrances and needn't $ sudo update-rc.d sshddir enable, the $ sudo update-rc.d sshd defaults already generates proper symlinks on runlevels directories. Commented Oct 23, 2019 at 23:32
2

Just create sshddir.service file in /etc/system/systemd/ with following contents:

[Unit] Description=Run Sshd Directory Creator After=network.target auditd.service ConditionPathExists=!/etc/ssh/sshd_not_to_be_run [Service] ExecStart=/usr/bin/sshddir ExecReload=/usr/bin/sshddir Restart=always RestartPreventExitStatus=255 Type=forking [Install] WantedBy=multi-user.target Alias=sshddir.service 

Then:

2a - $ sudo systemctl daemon-reload

2b - $ sudo systemctl enable sshddir

But is needed, first, remove SysVinit managed file:

1a - $ update-rc.d sshddir disable

1b - $ update-rc.d sshddir remove

Only then, reboot machine.

Looks like somehow systemd removes /run/sshd folder on boot up, generating error.

1
  • Just managed to run it via SysVinit itself, check it out up there. Commented Oct 23, 2019 at 23:35

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.