IBM AIX バグ IV82042 - SNCSSH:AIX OS で機能していない子プロセスを持つ sshd プロセスペアがハングする説明 SNCSSH を使用して AIX を検出した後、SSH サーバー (sshd) プロセスのペアが無応答状態でターゲット上で永久に実行されたままになり、さらに sshd プロセスの 1 つに機能していないプロセスが存在することがあります。ハングの原因となったプローブに続くプローブの場合、プローブが既存の TCP 接続上で追加の SSH チャネルを開こうとして失敗したため、検出ログに「Error; job finished with status ERROR: SSH channel xx timeout in state ESTABLISHING」というエラーが表示されます。 この動作は、ServiceNow ソフトウェアを使用せずに再現することもできます。 根本的な原因は、「ptys が関与する競合状態が原因で sshd がハングする」という IBM AIX のバグ IV82042 です。IBM は Various ssh problems after upgrading to OpenSSH 7.x で IV82042 が修正されたと主張しています。sshd がハングすると、同じ SSH セッション (セッションは TCP 接続) で新しいチャネルを開くという後続のプローブの要求に応答しなくなります。 mid.ssh.debug = true の場合、MID エージェントログにこれが表示されます。 ディスカバリーは、主にパスワードの入力を求める特権シェルコマンド (例:sudo xxx) を実行するために SSH 疑似端末 (pty) モードを使用します。プローブパラメーター run_in_terminal=true を指定するプローブも pty モードを使用します。SNCSSH は SSH の「exec」モードのみを使用し、pty モードと組み合わせると AIX でバグが発生します。非推奨の J2SSH は SSH の「シェル」モードのみを使用し、ほとんどの場合 pty モードを使用しますが、J2SSH はバグを再現しません。 再現手順 この動作はタイミングに依存するため、再現とトラブルシューティングが困難です。 シーケンスを複数回実行する必要がある場合があります。 ServiceNow ソフトウェアを使用せずに再現するには、次の手順を実行します。 次の簡単なコマンドラインを、任意の OS を実行している 2 番目のホストから実行するか、同じ AIX ホストから実行します。これは、SNCSSH の動作を模倣します。 ssh -vvv -t @ echo helloここで-t は、疑似端末 (pty) モードを使用することを意味します。 IP アドレスの後にシェルコマンド (echo hello) を指定することは、SSH プロトコルの「exec」モードとインタラクティブな「シェル」モードを使用することを意味します。-vvv (オプション) は、コンソールへのデバッグログ記録を有効にします。 このコマンドはクライアントをハングさせるため、クライアントのコンソールウィンドウを強制終了します。これにより、ターゲットへの SSH TCP 接続が強制的に閉じられます。正しい動作は、コンソールへの「hello」出力です。 ターゲット上でコマンド ps -ef | grep sshd を実行します。 開始時間フィールドを調べて、プローブ #1 を開始したのと同じ時刻と一致するものを見つけて、ハングした sshd プロセスのペアを見つけます。 しばらくしてから同じ ps コマンドを再度実行すると、まだハングしていることがわかります。 ssh コマンドを再実行しますが、-t は省略します。 このコマンドは常に成功し、「hello」と出力されます。 SNCSSH を使用して再現するには、次の手順を実行します。 2 つの SSHCommand プローブを作成します。 プローブ #1 のプローブパラメーターは run_in_terminal=true、コマンド (ECC キュー名フィールド) =「echo hello」。プローブ #2 コマンド =「echo goodbye」、プローブパラメーターなし。 プローブ #1 を実行します。 プローブ #2 を実行します。 AIX への新規チャネルを開こうとすると、数分後にタイムアウトします。 MID サーバーを停止します。 これにより、ターゲットへのすべての SSH TCP 接続が強制的に閉じられます。 ターゲット上で ps -ef | grep sshd を実行します。 開始時間フィールドを調べて、プローブ #1 を開始したのと同じ時刻と一致するものを見つけて、ハングした sshd プロセスのペアを見つけます。 これらのハングしたプロセスは決して終了しません。 ワークアラウンド <!-- ul { list-style: disc outside none; margin-left: 0; } li { padding-left: 1em; } --> 以下に従って、AIX 上の OpenSSH サーバーをバージョン 7.5.102.1500 以降に更新します。Various ssh problems after upgrading to OpenSSH 7.x。これにより IBM の次のバグが修正されます。https://www.ibm.com/support/pages/apar/IV82042 関連する問題:PRB1250056