4.6. SSH の使用

SGD は SSH を使用して、SGD サーバーとアプリケーションサーバーの間のセキュア接続を提供できます。SSH を使用することには、次の利点があります。

このセクションの内容は、次のとおりです。

4.6.1. SSH のサポート

SGD は、SSH version 2 以降で動作します。SSH バージョンには互換性の問題があるため、すべての SGD ホストとアプリケーションサーバー上で同じメジャーバージョンの SSH (version 2 または version 3 のどちらか) を使用してください。

SGD は、SSH が次のいずれかのディレクトリにインストールされていれば SSH が SGD ホストにインストールされていることを自動的に検出できます。

  • /usr/local/bin

  • /usr/bin

  • /usr/sbin

  • /usr/lbin

  • /bin

  • /sbin

SSH クライアントを別の場所から実行する場合、またはクライアントに対して特定のコマンド行引数を指定する場合、その詳細については「SSH クライアントの設定」を参照してください。

SSH を使用してアプリケーションサーバーに接続するには、次の条件が満たされている必要があります。

  • SGD ホストとアプリケーションサーバーに SSH がインストールされている必要があります。

  • アプリケーションオブジェクトの「接続方法」属性は ssh である必要があります

4.6.2. SSH クライアントの設定

SSH with SGD を使用している場合は、SSH クライアントによって使用されるコマンド行引数を構成できます。引数はグローバルに設定するか、個々のアプリケーションに対して設定するか、またはその両方を組み合わせて設定することができます。

SSH クライアントのグローバルオプションは、TTASSHCLIENT 環境変数を設定することによって構成します。詳細は、「SSH クライアントのグローバルオプションを設定する方法」を参照してください。SSH クライアントのグローバル設定は、次の場合に使用します。

  • SSH がデフォルトの格納場所のいずれかにインストールされていない

  • すべてのアプリケーションに対して同じ SSH クライアントコマンド行引数を使用する

SSH クライアントのアプリケーションオプションは、アプリケーションオブジェクトの「SSH 引数」属性を構成することによって構成します。詳細は、「SSH クライアントのアプリケーションオプションを設定する方法」を参照してください。

SSH クライアントのグローバル設定とアプリケーション設定を組み合わせて、SSH クライアントのパスとコマンド行引数を設定できます。

注記

この場合、グローバルなコマンド行引数はすべて無視されます。

次の表は、使用される ssh コマンドへのグローバル構成とアプリケーション構成の影響を示しています。

グローバル構成

アプリケーション構成

使用される SSH コマンド

[なし]

[なし]

ssh -l user@host

[なし]

-X

ssh -X -l user@host

/usr/ssh -X

[なし]

/usr/ssh -X -l user@host

/usr/ssh -X

-p port

/usr/ssh -p port -l user@host

4.6.2.1. SSH クライアントのグローバルオプションを設定する方法

SGD サーバーにログインしているユーザーがいないこと、および実行中のアプリケーションセッション (中断されているアプリケーションセッションを含む) が存在しないことを確認してください。

  1. SGD ホスト上でスーパーユーザー (root) としてログオンします。

  2. SGD サーバーを停止します。

  3. TTASSHCLIENT 環境変数を設定します。

    SSH クライアントプログラムへのフルパスと必要なコマンド行引数を含めます。次に例を示します。

    # TTASSHCLIENT="/usr/local/bin/ssh -q -X"; export TTASSHCLIENT
    注記

    SSH クライアントのコマンド行引数のみを設定する場合は、SSH プログラムが SGD で検出できる場所に存在する場合でも、SSH クライアントプログラムへのフルパスを含める必要があります。

  4. SGD サーバーを再起動します。

4.6.2.2. SSH クライアントのアプリケーションオプションを設定する方法

  1. Administration Console で、「アプリケーション」タブに移動し、アプリケーションを選択します。

  2. 「起動」タブに移動します。

  3. 「接続方法」の SSH オプションが選択されていることを確認します。

  4. 「ssh 引数」フィールドで、そのアプリケーションで使用する SSH 引数を入力します。

  5. 「保存」をクリックします。

4.6.3. X アプリケーション用の X11 の転送の有効化

SSH 接続を使用して SGD で X アプリケーションを表示するには、X11 転送を有効にする必要があります。「X11 転送を有効にする方法」を参照してください。

代わりに、X アプリケーションオブジェクトに関する「SSH のダウングレードを許可」(--allowsshdowngrade) 属性を有効にすることができます。この属性が有効になっているときに X11 転送が機能していないか、または構成されていない場合、SGD は、通常のセキュリティー保護されていない X11 接続を使用してアプリケーションを表示しようとします。設定によっては、ユーザーがダウングレードを受け入れるように求められる場合があります。次の表に、「SSH のダウングレードを許可」属性を有効にした場合の影響を示します。

X11 転送が構成されているか

X11 転送が機能しているか

「SSH のダウングレードを許可」属性が有効になっているか

ユーザーがアプリケーションを起動したときの動作

はい

はい

はい

アプリケーションが起動すると、SSH 接続が使用される

はい

はい

いいえ

アプリケーションが起動すると、SSH 接続が使用される

はい

いいえ

はい

ユーザーが X11 接続のダウングレードを許可するかどうかの確認を受ける

はい

いいえ

いいえ

アプリケーションが起動しない

いいえ

該当なし

いいえ

アプリケーションが起動しない

いいえ

該当なし

はい

アプリケーションが起動すると、X11 接続が使用される

X11 接続が使用されている場合、SGD は、DISPLAY 変数と X 認証 cookie を通常の方法で設定します。SSH 接続は、アプリケーション認証とアプリケーションの起動でのみ使用されます。

4.6.3.1. X11 転送を有効にする方法

  1. SGD ホスト上でスーパーユーザー (root) としてログインします。

  2. SSH デーモンを設定します。

    sshd_config ファイルを編集し、次の行を追加します。

    X11Forwarding yes

  3. SSH クライアントを設定します。

    次のいずれかを実行します。

    • ssh_config ファイルを編集し、次の行を含めます。

      ForwardAgent yes

      ForwardX11 yes

    • -X コマンド行引数を使用するように SSH クライアントを構成します。

      詳細は、「SSH クライアントの設定」を参照してください。

  4. SSH デーモンを再起動します。

4.6.4. SSH と X セキュリティー拡張機能の使用

SGD は、X セキュリティー拡張機能をサポートしています。X セキュリティー拡張機能は、-Y オプションをサポートする SSH のバージョンでのみ機能します。OpenSSH の場合、これは 3.8 以降のバージョンです。X セキュリティー拡張機能を有効にするには、次に示すように個々のアプリケーションのアプリケーションオブジェクトを設定します。

4.6.4.1. X セキュリティー拡張機能を有効にする方法

  1. Administration Console で、「アプリケーション」タブに移動し、アプリケーションを選択します。

  2. 「起動」タブに移動します。

  3. 「接続方法」の SSH オプションが選択されていることを確認します。

  4. 「X セキュリティー拡張機能」チェックボックスを選択します。

  5. 「保存」をクリックします。

4.6.5. SSH と X 認証の使用

X 認証が有効になっているときに SSH 接続に失敗する場合は、サーバー上で使用されている X セキュリティー拡張機能が SGD でサポートされていない可能性があるため、IPv4 のみのモードでの SSH デーモンの実行が必要になることがあります。IP version 4 モードを有効にするには、システムの SSH 構成ファイルを編集します。

たとえば、Oracle Linux では /etc/ssh/sshd_config ファイルを編集し、次の行を追加します。

AddressFamily inet

この変更を加えたら、SSH デーモンを再起動する必要があります。

4.6.6. 高度な SSH 機能の使用

クライアント鍵などの一部の SSH 機能では、SSH クライアントプロセスを特権ユーザーとして実行する必要があります。ただし、セキュリティー上の理由から、SGD サーバープロセスと SSH クライアントプロセスは非特権ユーザーとして実行されます。

高度な SSH 機能を使用するには、SGD ttasshhelper アプリケーションを setuid root プロセスにする必要があります。これは、アレイ内の各 SGD サーバー上でスーパーユーザー (root) として次のコマンドを実行することによって行います。

# chown root /opt/tarantella/bin/bin/ttasshhelper
# chmod 4510 /opt/tarantella/bin/bin/ttasshhelper
注意

これらの変更を行なった場合は、SGD サーバーを未承認のアクセスから保護する必要があります。

4.6.6.1. クライアント鍵に関する既知の制限

SSH クライアント鍵の機能を使用している場合、ユーザーがアプリケーションを起動したときに、ユーザー名とパスワードの入力を要求されることがあります。ユーザーに入力が求められるのは、SSH 接続に使用するユーザー名を SGD が認識している必要があるためです。ユーザーはパスワードの入力も要求されますが、このパスワードは実際には使用されません。ユーザーがユーザー名とパスワードの入力を要求されるのは、アプリケーションサーバーのパスワードキャッシュ内にそのユーザーのエントリがない場合か、またはパスワードキャッシュが無効になっている場合だけです。ユーザーが入力を要求された場合、指定する必要があるのはユーザー名だけです。パスワードフィールドは空白のままにすることができます。