Reflection X の SSH 接続のトラブルシューティング 最終改訂日: 2011 年 3 月 31 日 注意:最新の情報は、まず、英語版の技術ノート 1814 (英語)で公開されます。英語版の最終改 訂日がこの版の最終改訂日よりも後である場合は、英語版に新しい情報が含まれている可能性が あります。 適用対象 Reflection Reflection Reflection Reflection X 2011 Suite for X 2011 X Advantage X バージョン 14.x 概要 この技術ノートでは、Reflection X での Secure Shell による接続に関する問題をトラブル シューティングする方法について説明しています。 以下の点に注意してください。 * Reflection 13.0 以降、SSH 接続は Secure Shell と呼ばれています。これより古いバ ージョンの Reflection では、SSH 接続は OpenSSH と呼ばれていました。 Reflection の Secure Shell の詳細については、技術ノート 1857 (英語)を参照してく ださい。 * このドキュメントに記載されている一部の手順を実行するために、ホストへの root ア クセスと、Linux/UNIX テキストエディタに関する十分な知識が必要になります。必要な アクセスまたは知識がない場合は、システム管理者に支援を依頼してください。 * SSH トンネルに関する問題が発生する可能性があるため、Reflection for Secure IT Windows クライアントと Reflection X を同じワークステーションにインストールしな いでください。Reflection X には、Reflection for Secure IT Windows クライアント のすべての機能が含まれています。 SSH 接続と Reflection X について SSH 接続の使用時に X クライアントディスプレイの取得に関する問題が発生する場合は、可能 性のある次の 3 つの要因について検討してください。 * ホストで X11Forwarding が有効になっているか * SSH サーバでディスプレイ変数が設定されているか * .Xauthority ファイルが読み取られているか (xauth プログラムが動作しているか) Reflection X で SSH を使用するには、X11 プロトコルが SSH トンネルを介して送信される必 要があります。この追加のプロセスにより、通常、Reflection X は X クライアントディスプレ イの受信に失敗します。また、SSH を使用して X11 プロトコルをトンネルする場合、SSH サー バがディスプレイ変数を設定する必要があります。SSH サーバがディスプレイ変数を設定するに は、SSH サーバと SSH クライアントの両方で X11Forwarding が有効になっている必要がありま す。 Reflection X での SSH の使用時に X クライアントディスプレイを取得できない場合は、問題 のトラブルシューティングのために、この技術ノートの手順を実行してください。 Reflection ワークスペースまたは Reflection for UNIX and OpenVMS による SSH 接続のテスト Reflection ワークスペースまたは Reflection for UNIX and OpenVMS を使用して、SSH サーバ が動作し、正しく構成されていることを確認します。この手順は、Reflection のバージョンに よって異なります。 Reflection ワークスペースの場合: 1. [スタート] - [プログラム] - [Attachmate Reflection] - [Reflection ワークスペー ス] - [VT 端末] - [作成] コマンドを選択します。 2. [接続] で、[Secure Shell] を選択し、ホスト名または IP アドレスを入力します。 3. [その他の設定を構成する] をクリックし、[OK] をクリックします。 4. [VT の設定] 画面の [ホスト接続] で、[接続セキュリティの設定] を選択します。 5. [トンネリング] タブをクリックし、[X11 トンネル接続を行う] を有効にします。 6. [OK] をクリックして設定を保存します。 7. [OK] をクリックしてホストに接続します。ホストに接続できない場合は、ホストの管理 者またはヘルプデスクに支援を依頼してください。 8. ホストにログインして、echo $DISPLAY コマンドを入力します。次に、このコマンドの 出力を、トラブルシューティングの方法を決定するために示されている例のリストと比 較します。 注意:セッションを再び使用する場合があるため、この技術ノートに記載されている作業を実行 している間は、ログイン状態を維持してください。 下記の「ディスプレイ出力の解釈」のセクションに進んでください。 Reflection for UNIX and OpenVMS の場合: 1. [スタート] - [プログラム] - [Attachmate Reflection] - [ホスト - UNIX および OpenVMS] コマンドを選択します。 2. [接続] - [接続の設定] コマンドをクリックします。 3. [ネットワーク] オプションを選択し、[SECURE SHELL] を選択します。 4. ホスト名とユーザ名を入力し、[セキュリティ] をクリックします。 5. [トンネリング] タブをクリックし、[X11 トンネル接続を行う] を有効にします。 6. [OK] をクリックし、[接続] をクリックします。ホストに接続できない場合は、ホスト の管理者またはヘルプデスクに支援を依頼してください。 7. ホストにログインして、echo $DISPLAY コマンドを入力します。次のセクションで、こ のコマンドの出力を、トラブルシューティングの方法を決定するために示されている例 のリストと比較します。 注意:セッションを再び使用する場合があるため、この技術ノートに記載されている作業を実行 している間は、ログイン状態を維持してください。 次の「ディスプレイ出力の解釈」のセクションに進んでください。 ディスプレイ出力の解釈 手順 7 のディスプレイ出力を以下の情報と比較し、適切なトラブルシューティングセクション へのリンクを利用してください。 * 出力: <なし> データが返されない場合は、X11Forwarding が有効になっていない可能性があります。 「X11Forwarding の有効化」のセクションを参照してください。 * 出力: PC_IP:0.0 ディスプレイが、SSH サーバのものとは異なる IP アドレスまたはマシン名に設定され ている場合は、SSH サーバで X11Forwarding が有効になっていない可能性があり、ディ スプレイが別の手段 (コマンドライン入力、ログインスクリプトなど) によって設定さ れています。「ディスプレイ変数のトラブルシューティング」のセクションを参照して ください。 * 出力: hostname:0.0 ディスプレイがホスト名 (または localhost) に設定されており、ディスプレイ番号が 10 以上ではなく 0 に設定されている場合は、SSH サーバにおいて X11Forwarding が高 い確率で有効になっていますが、コマンドライン入力またはログインスクリプトによっ てディスプレイ変数が壊れています。「ディスプレイ変数のトラブルシューティング」 のセクションを参照してください。 * 出力: hostname:10.0 または localhost:11.0 ディスプレイがホスト名または localhost に設定されており、10 以上のディスプレイ 番号が含まれている場合は、X11Forwarding が高い確率で有効になっており、ディスプ レイ変数が高い確率で正しく設定されています。「.Xauthority および xauth のトラブ ルシューティング」のセクションを参照してください。 X11Forwarding の有効化 ホストで X11Forwarding を有効にするには、SSH サーバ構成ファイルを見つけて編集し、SSH サーバデーモンを停止して再起動する必要があります。 構成ファイルの場所 X11Forwarding は、SSH サーバ構成ファイルで構成されます。一般に、この構成ファイルは、 「sshd_config」または「sshd2_config」という名前で、/etc/ssh または /etc/ssh2 にありま す。これらの場所にファイルがない場合は、find コマンドを使用してファイルを検索してくだ さい。 find / -name sshd_config 構成ファイルの参照および編集 SSH サーバ構成ファイルを見つけたら、more コマンドを使用してファイルを参照し、 X11Forwarding が有効になっていることを確認します。ファイルを参照するには、コマンドプロ ンプトに次のコマンドを入力します。 more sshd_config [Enter] キーを使用して、X11Forwarding のキーワードが表示されるまでファイルをスクロール します (このキーワードは製品によって異なる場合がありますが、「AllowX11Forwarding」、 「X11Forwarding」などです)。 このパラメータが「no」に設定されている場合は、以下の手順 で機能を有効にしてください。 1. ホストに root としてログインします。 2. SSH サーバ構成ファイルをテキストエディタ (vi など) で開きます。 3. X11Forwarding のキーワードエントリ (「X11Forwarding no」など) を見つけます。 4. X11Forwarding のキーワードエントリを編集して、「no」を「yes」に変更します。 注意:この行がコメントアウトされている (前に # 記号が付いている) 場合は、# 記号 を削除してください。 5. ファイルを保存して、テキストエディタを終了します。 デーモンの停止および再起動 構成ファイルを修正したら、SSH デーモンを停止して再起動します。 以下の点に注意してください。 * SSH デーモンを停止および再起動しても、アクティブな Secure Shell セッションは終 了しません。 * デーモンを停止および再起動するために root としてログインしなければならない場合 があります。 * SSH2 を使用している場合は、コマンドの「sshd」を「sshd2」に変更してください。 デーモンを停止して再起動するには 1. コマンドプロンプトに「ps -eaf | grep sshd」と入力して、SSH デーモンのプロセス ID (PID) を確認します。 PID をメモしておきます。 2. 「kill -HUP <PID 番号>」と入力して SSH デーモンを停止および再起動します。 注意:<PID 番号> は、手順 1 で取得したプロセス ID 番号に置き換えてください。 3. 「ps -eaf | grep sshd」と入力してデーモンが再起動していることを確認します。 SSH デーモンの PID が手順 1 の PID とは異なったものになり、X11Forwarding が有効 になります。 4. ログオフします。 ディスプレイ変数のトラブルシューティング X11Forwarding を有効にして SSH を使用する場合は、SSH サーバがディスプレイ変数の設定を 担当します。多数の X ユーザが (一般に、-display スイッチを使用して、ホストのコマンドス クリプトから手動で、またはログインスクリプト内から) ディスプレイ変数を PC_IP:0.0 など に設定しますが、SSH を使用する場合は、これを禁止してください。 注意:ディスプレイ変数を別の手段で設定しないことは非常に重要です。別の手段で設定すると、 SSH サーバによって割り当てられたディスプレイ変数が壊れたり、場合によっては、X クライア ントディスプレイが安全ではない方法で SSH トンネルの外部に送信されることを可能にするも のに置き換えられることもあります。 (「Reflection ワークスペースまたは Reflection for UNIX and OpenVMS による SSH 接続のテ スト」のセクションの) ディスプレイ出力が「PC_IP:0.0」または「hostname:0.0」のようなも のである場合は、ディスプレイ変数が (少なくとも部分的に) SSH サーバ以外の手段によって設 定されています。ディスプレイ変数を編集するすべてのコマンドを削除して、再度テストしてく ださい。この手順を実行して、ディスプレイ出力がなくなった場合は、「X11Forwarding の有効 化」のセクションを参照してください。 Reflection X の既定のテンプレート Reflection X for UNIX ホストの既定のテンプレートには、-display パラメータが含まれてい ます。接続方法として Secure Shell が選択されている場合は、このパラメータが無視され、ホ ストに送信されません。他の方法によって、このコマンドでディスプレイ変数が設定される場合 は、無視されないため、削除する必要があります。 例えば、次のコマンドが、Secure Shell の方式とともに使用されると仮定します。 (/usr/openwin/bin/xterm -fn 6x13 -sb -ls -display %IP#% -name %T% &) ホストに送信されるコマンドは、次のように編集されます。 (/usr/openwin/bin/xterm -fn 6x13 -sb -ls -name %T% &) しかし、代わりに次のコマンドが使用されると仮定します。 DISPLAY=%IP#%;export DISPLAY;(/usr/openwin/bin/xterm -name %T% &) この場合は、コマンド全体がホストに送信されます。Secure Shell を使用する場合は、このコ マンドを次のようなものに編集してください。 (/usr/openwin/bin/xterm -fn 6x13 -sb -ls -name %T% &) このコマンドを実行した後にディスプレイ出力がない場合は、「X11Forwarding の有効化」のセ クションを参照してください。 注意:Reflection X バージョン 13.x ~ 14.x を使用している場合は、[設定] - [ネットワー ク] コマンドをクリックし、[リモート TCP/IP 接続を使用不可] チェックボックスをオンにし て、[OK] をクリックすることにより、すべてのリモート接続を禁止することができます。この チェックボックスをオンにすると、Secure Shell 以外のすべての接続方式が無効になり、最高 度のセキュリティが実現されます。 .Xauthority および xauth のトラブルシューティング (「Reflection ワークスペースまたは Reflection for UNIX and OpenVMS による SSH 接続のテ スト」のセクションの) ディスプレイ出力が「hostname:10.0」または「localhost:11.0」のよ うなものであっても、X クライアントを表示できない場合は、問題の原因が .Xauthority ファ イルまたは xauth プログラムである可能性があります。 .Xauthority ファイルに関する問題 UNIX ホストで動作し、X11Forwarding が有効になっている場合の各接続試行時に SSH サーバに よって呼び出される xauth プログラムが、ユーザの .Xauthority ファイルを作成または編集し たり、このファイルにアクセスしたりすることができなくなっています。テストするには、以下 の手順を実行してください。 1.Reflection X が動作し、ディスプレイ 0 (既定値) で構成されていることを確認します。 0 以外のディスプレイが使用されている場合、この値を 0 に変更できないときは、 Attachmate の技術サポートに連絡してください。 Reflection X 13 ~ 14.x では、[設定] - [表示] コマンドをクリックします。 Reflection X Advantage では、セッションを起動し、次の図に示す [セッションの定 義] 画面の [クライアントコネクタ] を調べます。 2. Reflection for UNIX and OpenVMS による既存のホスト接続から、ホストで xterm を起 動するコマンドを入力します。例えば、Solaris で次のコマンドを入力します。 /usr/openwin/bin/xterm & ユーザの .Xauthority ファイルにアクセスする xauth プログラムに関する問題が存在 すると、多くの場合、次のようなメッセージが表示されます。 X connection to hostname:10.0 broken (explicit kill or server shutdown) または xauth: timeout in locking authority file /home/<アカウント名> このような問題については、次のような原因が考えられます。 * .Xauthority ファイルまたはホームディレクトリに関して、十分な権限がない * .Xauthority ファイルまたはホームディレクトリの所有権が正しくない * アカウントのホームディレクトリが設定されていない * .Xauthority ファイルが壊れている * 「su」コマンドが使用された (この場合、新しいアカウントが、元のアカウントのホー ムディレクトリにある必要な .Xauthority ファイルにアクセスできない可能性がありま す) * UNIX サーバで他のプロセスによってファイルがロックされている システム管理者との共同作業によってこれらの問題を解決し、X アプリケーションの起動を再試 行してください。 xauth プログラムが動作しない SSH サーバによって呼び出されるときに、xauth プログラムが検出または実行されなくなってい ます。検出されないときは、多くの場合、そのパスを設定するために使用できる SSH サーバ構 成キーワードが存在します。この問題は、当該の UNIX ホストへの接続を試みるすべてのユーザ に影響します。SSH を使用して接続する場合に、どのユーザも当該の UNIX ホストから X クラ イアントを起動できないものの、正しいディスプレイ変数と思われるものにユーザが接続して表 示できる場合は、UNIX ホストの管理者に支援を依頼してください。 この技術ノートに記載されている作業を実行しても問題が解決しない場合は、ホストの管理者に 連絡してください。 ライブラリの競合 SSH サーバが X11 転送をローカルネットワークアダプタにバインドする方法によっては、古い X ライブラリ (X11R5 など) にリンクしている X アプリケーションで障害が発生する場合があ ります。この問題が発生すると、次のようなメッセージが表示されます。 X connection to hostname:10.0 broken (explicit kill or server shutdown). または、次のような一連のエラーメッセージがデバッグログに記録される場合があります。 X11 connection uses different authentication protocol. X11 connection rejected because of wrong authentication. X11 rejected 1 i0/o0 この問題は、次の 2 つの方法のいずれかで解決できます。 * X11R6 ライブラリにリンクしている X クライアントを使用する または * SSH サーバ構成ファイルで「X11UseLocalHost」というキーワードを探して、存在したら、 値を「yes」から「no」に変更して SSH サーバを再起動する 例 特定の X アプリケーションがリンクしているライブラリを識別するために、「chatr」などのコ マンドを使用することができます。以下の例は、HPUX 11.23 の場合です。 hpterm をトンネルできず、explicit kill メッセージが表示されると仮定します。chatr コマ ンドを実行して、リンクしているライブラリを調べます。 chatr /usr/bin/X11/hpterm 次の文字列は、X11R5 ライブラリを示している出力の一部分です。 /view/x_r6hpPA_1123/vobs/swdev/pvt/r5hpPA_hpterm_1123/X11R5/lib/libXhp11.1 同じ Hewlett Packard ホストで xterm が正しく表示されると仮定します。chatr コマンドを実 行して、リンクしているライブラリを調べます。 chatr /usr/bin/X11/xterm 次の文字列は、X11R6 ライブラリを示している出力の一部分です。 /view/x_r6hpPA_1123/vobs/swdev/pvt/r6hpPA_1123/X11R6/lib/libXt.3 この技術ノートに記載されている作業を実行しても問題が解決しない場合は、ホストの管理者に 連絡してください。
© Copyright 2024 Paperzz