この記事では、Linux ECS インスタンスで SSH サービスがサイレントに起動失敗する問題の解決方法について説明します。
症状
Linux ECS インスタンスで service または systemctl コマンドを使用して SSH サービスを起動すると、コマンドはエラーなく完了しますが、サービスは起動に失敗します。
cat /var/log/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 を使用したインスタンスへの接続」をご参照ください。
-
次のコマンドを実行して PATH 環境変数を確認します。
echo $PATH-
PATH環境変数のデフォルト値である、期待される応答は次のとおりです。/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin -
出力が異なる場合、PATH 環境変数が変更されています。次のコマンドを実行してリセットします。
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