SGD は SSH を使用して、SGD サーバーとアプリケーションサーバーの間のセキュア接続を提供できます。SSH を使用することには、次の利点があります。
SSH を使用したアプリケーションサーバーと SGD サーバーの間のすべての通信が暗号化されます。X アプリケーションを実行している場合は、X プロトコルも含まれます。
ユーザー名とパスワードは、ネットワーク上で送信する前に常に暗号化される
このセクションの内容は、次のとおりです。
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 である必要があります
SSH with SGD を使用している場合は、SSH クライアントによって使用されるコマンド行引数を構成できます。引数はグローバルに設定するか、個々のアプリケーションに対して設定するか、またはその両方を組み合わせて設定することができます。
SSH クライアントのグローバルオプションは、TTASSHCLIENT
環境変数を設定することによって構成します。詳細は、「SSH クライアントのグローバルオプションを設定する方法」を参照してください。SSH クライアントのグローバル設定は、次の場合に使用します。
SSH がデフォルトの格納場所のいずれかにインストールされていない
すべてのアプリケーションに対して同じ SSH クライアントコマンド行引数を使用する
SSH クライアントのアプリケーションオプションは、アプリケーションオブジェクトの「SSH 引数」属性を構成することによって構成します。詳細は、「SSH クライアントのアプリケーションオプションを設定する方法」を参照してください。
SSH クライアントのグローバル設定とアプリケーション設定を組み合わせて、SSH クライアントのパスとコマンド行引数を設定できます。
この場合、グローバルなコマンド行引数はすべて無視されます。
次の表は、使用される ssh コマンドへのグローバル構成とアプリケーション構成の影響を示しています。
グローバル構成 | アプリケーション構成 | 使用される SSH コマンド |
---|---|---|
[なし] | [なし] |
ssh -l |
[なし] | -X |
ssh -X -l |
/usr/ssh -X | [なし] |
/usr/ssh -X -l |
/usr/ssh -X |
-p |
/usr/ssh -p |
SGD サーバーにログインしているユーザーがいないこと、および実行中のアプリケーションセッション (中断されているアプリケーションセッションを含む) が存在しないことを確認してください。
SGD ホスト上でスーパーユーザー (root) としてログオンします。
SGD サーバーを停止します。
TTASSHCLIENT
環境変数を設定します。
SSH クライアントプログラムへのフルパスと必要なコマンド行引数を含めます。次に例を示します。
# TTASSHCLIENT="/usr/local/bin/ssh -q -X"; export TTASSHCLIENT
SSH クライアントのコマンド行引数のみを設定する場合は、SSH プログラムが SGD で検出できる場所に存在する場合でも、SSH クライアントプログラムへのフルパスを含める必要があります。
SGD サーバーを再起動します。
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 接続は、アプリケーション認証とアプリケーションの起動でのみ使用されます。
SGD ホスト上でスーパーユーザー (root) としてログインします。
SSH デーモンを設定します。
sshd_config
ファイルを編集し、次の行を追加します。
X11Forwarding yes
SSH クライアントを設定します。
次のいずれかを実行します。
ssh_config
ファイルを編集し、次の行を含めます。
ForwardAgent yes
ForwardX11 yes
-X コマンド行引数を使用するように SSH クライアントを構成します。
詳細は、「SSH クライアントの設定」を参照してください。
SSH デーモンを再起動します。
SGD は、X セキュリティー拡張機能をサポートしています。X セキュリティー拡張機能は、-Y オプションをサポートする SSH のバージョンでのみ機能します。OpenSSH の場合、これは 3.8 以降のバージョンです。X セキュリティー拡張機能を有効にするには、次に示すように個々のアプリケーションのアプリケーションオブジェクトを設定します。
X 認証が有効になっているときに SSH 接続に失敗する場合は、サーバー上で使用されている X セキュリティー拡張機能が SGD でサポートされていない可能性があるため、IPv4 のみのモードでの SSH デーモンの実行が必要になることがあります。IP version 4 モードを有効にするには、システムの SSH 構成ファイルを編集します。
たとえば、Oracle Linux では /etc/ssh/sshd_config
ファイルを編集し、次の行を追加します。
AddressFamily inet
この変更を加えたら、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 サーバーを未承認のアクセスから保護する必要があります。
SSH クライアント鍵の機能を使用している場合、ユーザーがアプリケーションを起動したときに、ユーザー名とパスワードの入力を要求されることがあります。ユーザーに入力が求められるのは、SSH 接続に使用するユーザー名を SGD が認識している必要があるためです。ユーザーはパスワードの入力も要求されますが、このパスワードは実際には使用されません。ユーザーがユーザー名とパスワードの入力を要求されるのは、アプリケーションサーバーのパスワードキャッシュ内にそのユーザーのエントリがない場合か、またはパスワードキャッシュが無効になっている場合だけです。ユーザーが入力を要求された場合、指定する必要があるのはユーザー名だけです。パスワードフィールドは空白のままにすることができます。