本文介紹在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服務為運行中。
