Debian
Debian 10 Buster 中的 SSH 伺服器錯誤
無法
sshd
在 Debian 10 “Buster” 中連接,連接時出現如下錯誤:$ ssh -p 2222 user@192.168.12.73 ssh_exchange_identification: read: Connection reset by peer
檢查這些服務,得到以下錯誤:
● 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
已經嘗試用
xinetd
包管理,設置為2222埠,而OpenBSD Secure Shell伺服器一直監聽22埠,如下:● 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
有任何想法嗎?
這裡有類似的錯誤,看起來
sshd
是啟動時創建/run/sshd
目錄失敗,所以在這里通過腳本進行管理,如下:
sshddir
在以下內容中創建一個腳本/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
這樣,可能會重新啟動並訪問它。