問題の説明
Linux Elastic Compute Service (ECS) インスタンスの SSH サービスが起動できないため、リモート SSH 接続が失敗します。/var/log/secure ファイルに次のエラーが記録されます。
FAILED.
fatal: Cannot bind any address.
address family must be specified before ListenAddress.
原因
この問題は、SSH 設定ファイル /etc/ssh/sshd_config の AddressFamily パラメーターが inet6 に設定されていることが原因です。これにより、SSH サービスは IPv6 アドレスのみをリッスンするようになります。システムで IPv6 が有効になっていないため、sshd サービスは IPv6 アドレスにバインドできず、起動に失敗します。
ソリューション
この問題を解決するには、VNC 接続を使用してインスタンスに接続し、SSH 設定ファイルを変更します。ファイルを変更した後、サービスを再起動して正常に起動することを確認します。
VNC 接続を使用して ECS インスタンスにログインします。
[ECS コンソール - インスタンス]に移動します。上部メニューで、対象のリージョンとリソースグループを選択します。
対象インスタンスの詳細ページに移動します。 [Connect] をクリックし、[VNC] を選択します。 ユーザー名とパスワードを入力して ECS インスタンスにログインします。
-
/etc/ssh/sshd_configファイルを編集します。AddressFamily inet6の行を見つけて、次のように変更します。AddressFamily inet -
sshdサービスを再起動します。systemctl restart sshd.service
推奨事項
ワークロードで IPv6 が必要な場合は、まずインスタンスで IPv6 を有効化して設定する必要があります。IPv6 を有効にした後、AddressFamily パラメーターを inet6 に戻すことができます。