問題原因
SSH服務配置錯誤,導致SSH服務啟動失敗:
語法錯誤:配置項拼字錯誤或配置項的值不在其允許的範圍或預定義的枚舉列表內(例如,on/off,true/false,或特定的數值區間)。
檔案編碼錯誤:檔案包含BOM頭或CRLF分行符號。
解決方案
方案一:修複SSH服務配置錯誤
通過VNC串連登入ECS執行個體。
訪問ECS控制台-執行個體。在頁面左側頂部,選擇目標資源所在的資源群組和地區。
進入目標執行個體詳情頁,單擊遠端連線,選擇通過VNC遠端連線。輸入帳號和密碼,登入ECS執行個體。
診斷SSH服務配置。
sudo /usr/sbin/sshd -t分析命令返回的錯誤資訊。錯誤輸出會指出問題所在的檔案、行號和錯誤類型:
# 樣本1:使用了已廢棄的配置項 /etc/ssh/sshd_config: line 82: Bad configuration option: RSAAuthentication # 樣本:配置項值不正確 /etc/ssh/sshd_config: line 23: bad value for Port "222222"修改設定檔。
sudo vim /etc/ssh/sshd_config處理廢棄的配置項:隨著OpenSSH版本更新,一些舊的配置項會被廢棄。應注釋或刪除相關行。
RSAAuthentication:在OpenSSH 7.0及更高版本中廢棄。UsePrivilegeSeparation:在OpenSSH 7.5及更高版本中預設啟用且配置項被廢棄。
修正語法錯誤:根據錯誤提示修改指定行號的配置,確保文法正確且值在有效範圍內。
檢查並修複檔案編碼:從Windows系統複製的設定檔可能包含BOM頭或CRLF分行符號,導致解析失敗。
檢查分行符號格式:輸入
:set fileformat?。若顯示
fileformat=dos,說明檔案包含CRLF分行符號,輸入:set fileformat=unix進行修複。檢查BOM頭: 輸入
:set bomb?。若顯示 bomb,說明檔案包含BOM頭,輸入
:set nobomb進行修複。
如果以上問題不存在,或設定檔損壞嚴重,可重新安裝SSH服務。
驗證配置。
無返回資訊時,說明sshd配置正確。
# 驗證配置 sudo /usr/sbin/sshd -t重新啟動SSH服務。
sudo systemctl restart sshd驗證服務狀態。
若返回資訊包含
active (running),說明服務啟動成功。sudo systemctl status sshd
方案二:重新安裝SSH服務
通過VNC串連登入ECS執行個體。
訪問ECS控制台-執行個體。在頁面左側頂部,選擇目標資源所在的資源群組和地區。
進入目標執行個體詳情頁,單擊遠端連線,選擇通過VNC遠端連線。輸入帳號和密碼,登入ECS執行個體。
備份設定檔。
重新安裝SSH服務會丟失所有自訂的SSH配置(如修改過的連接埠、密鑰認證設定等)。
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup-$(date +%Y%m%d-%H%M%S)卸載SSH服務。
sudo rpm -e openssh-server安裝SSH服務。
安裝完成後,建議手動將必要的自訂配置從備份檔案遷移到新的預設設定檔中。
sudo yum install openssh-server啟動SSH服務。
sudo systemctl start sshd驗證服務狀態。
若返回資訊包含
active (running),說明服務啟動成功。sudo systemctl status sshd