本文介紹在Linux系統的ECS執行個體中,啟動SSH服務時未遇到任何錯誤資訊,但是ssh服務未啟動的問題原因和解決方案。
問題現象
在Linux系統的ECS執行個體中,使用service或systemctl命令啟動SSH服務時,命令列沒有返回任何報錯資訊,但服務沒有正常運行。
執行cat /var/log/secure查看secure日誌,發現類似如下錯誤資訊。
sshd.service: main process exited, code=exited, status=203/EXEC.
init: ssh main process (1843) terminated with status 255.
問題原因
該問題通常是因為PATH環境變數配置異常,或SSH軟體包相關檔案被移除。
解決方案
請按照如下操作步驟,進行檢查並解決問題。
-
使用VNC遠端連線ECS執行個體。
具體操作,請參見通過VNC串連執行個體。
-
執行如下命令,檢查環境變數配置。
echo $PATH-
系統正常返回類似如下,該值為PATH環境變數的預設值。
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin -
若返回其他資訊,表示環境變數的預設值被改變,則需執行如下命令,重設環境變數。
export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
-
-
執行如下命令,尋找並確認sshd程式的路徑。
find / -name sshd-
系統正常返回類似如下,包含sshd程式的預設路徑。
/usr/sbin/sshd -
如果相應檔案不存在,建議執行如下命令,重新安裝SSH軟體包。
yum install -y openssh
-
-
執行如下命令,重啟SSH服務。
systemctl restart sshd.service -
執行如下命令,查看SSH服務狀態。
systemctl status sshd.service返回如下內容時,表示SSH服務為運行中。
● sshd.service - OpenSSH server daemon Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2023-03-17 16:27:41 CST; 5 days ago Docs: man:sshd(8) man:sshd_config(5) Main PID: 1327 (sshd) Tasks: 1 (limit: 85040) Memory: 127.9M CGroup: /system.slice/sshd.service └─1327 /usr/sbin/sshd -D -oCiphers=aes256-gcm@openssh.com,chacha20-poly1305@openssh.com,aes256-ctr,aes256-cbc,aes128-gcm@openssh.com,aes128-ctr,aes128-cbc -oMACs=hmac-sha2-256-etm@openssh.com,hmac-sha1-etm@openssh.com