Sun N1 Service Provisioning System 5.1 インストールガイド

第 7 章 Secure Shell を使用するための N1 Service Provisioning System 5.1 の構成

この章では、Secure Shell (SSH) を使用して通信を行うように N1 Service Provisioning System 5.1 を構成する方法について説明しています。

N1 Service Provisioning System 5.1 は、OpenSSH 2.0 を明示的にサポートしています。OpenSSH 2.0 は、OpenBSD Project によって開発された SSH の無料版です。詳細については、http://www.openssh.com を参照してください。このソフトウェアは、ほかの SSH バージョンをサポートするようにも構成できます。

ネットワーク内の各サーバーで同じ SSH 実装を使用すると、鍵の互換性が保たれ、サーバー通信が正しく行われます。ネットワーク上の各サーバーに異なる SSH 実装を使用することもできますが、それらの実装に互換性があることと、相互運用が可能であるかを検証する必要があります。


注 –

この章で紹介するコマンドとインタフェースは、OpenSSH 2.0 用です。そのほかのバージョンのSSH を使用する場合は、そのバージョンの SSH の付属文書で、OpenSSH 2.0 で使用されているコマンドに対応するコマンドやオプションを確認してください。OpenSSH 2.0 のコマンドとオプションについては、「OpenSSH 2.0 コマンドリファレンス」を参照してください。


この章の内容は、次のとおりです。

SSH の概要と使用条件

SSH は、リモートコンピュータに安全にアクセスするための UNIX ベースのコマンド群/プロトコルです。SSH は、電子証明書とパスワードの暗号化を利用して、接続の両端で認証を行うことにより、ネットワーク上のクライアントとサーバーの通信を保護します。また、RSA 公開鍵暗号を使用して接続と認証を管理します。SSH は、Telnet やほかのシェルベース通信方式よりも安全性が高く、Web サーバーなどのリモートサーバーの管理に使用されます。

ほかの接続タイプと異なり、2 つの N1 Service Provisioning System 5.1 アプリケーション間に SSH 接続を設定した場合、ダウンストリームのアプリケーションは手動で起動する必要がありません。ダウンストリームのアプリケーションは、必要な場合にアップストリームのアプリケーションによって自動的に起動されます。ダウンストリームのアプリケーションは、使用されている間は継続して動作しますが、一定の時間 (この時間は設定可能) 使用されないと自動的に停止します。

SSH 接続では、ダウンストリームのアプリケーションの手動起動は行わないでください。たとえば、SSH を使用してリモートエージェントに接続するようにローカルディストリビュータを設定した場合、リモートエージェントを手動では起動しないでください。ローカルディストリビュータは、必要時にリモートエージェントを自動的に起動します。リモートエージェントは、使用されている間は継続して作動します。リモートエージェントが一定時間使用されなかった場合、ローカルディストリビュータは自動的にリモートエージェントを停止します。

ssh-agent または空のパスワード鍵

SSH は構成時に、ssh-agent を使用するか、空のパスワード鍵を使用するかを選択できます。空のパスワード鍵を使用すると、生成された SSH 非公開鍵は空のパスワード付きで格納されます。この結果、この非公開鍵はパスワードなしでアクセスできます。公開鍵を信頼するほかのマシンとの通信に SSH を使用する場合、パスワードの入力は求められません。ssh-agent を使用する場合は、生成される非公開鍵はセキュリティー保護されたパスワードと共に格納され、安全なメディアに格納されます。ほかのマシンと通信を行うときは、ssh-agent を起動し、安全なメディアから非公開鍵をアップロードし、パスワードを入力します。非公開鍵はファイルシステムには格納されず、ssh-agent プロセスのメモリー内に格納されます。

ssh-agent を使用する場合、非公開鍵はマスターサーバー上でしか実行されない ssh-agent によって格納されます。ネットワーク上のほかのマシンには公開鍵が配布されます。認証が必要な SSH アプリケーションは、ssh-agent と通信して認証を行います。認証のためにマスターサーバーで実行されている ssh-agent に対してローカルディストリビュータからプロキシ設定が行えるように中間的な SSH 接続するには、ssh-agent の転送機能を有効にする必要があります。ローカルディストリビュータは、ssh-agent の転送機能を使用してダウンストリームのローカルディストリビュータとリモートエージェントに認証情報を渡します。この方法は、前述の方法よりも安全です。また、N1 Service Provisioning System 5.1 で ssh-agent を使用するように構成した方が、空のパスワードを設定するよりも簡単です。

空のパスワードを使用すると、非公開鍵はパスワードなしでマシンのファイルシステム上に格納されます。非公開鍵は、SSH 通信を開始するすべてのマシン上に置く必要があります。N1 Service Provisioning System 5.1 の場合、SSH を使用してダウンストリームのアプリケーションに接続しているマスターサーバーとローカルディストリビュータはすべて、非公開鍵を持っていなければなりません。この方法は安全性に劣ります。

SSH の要件

N1 Service Provisioning System 5.1 には、次の SSH 機能が必要です。

ssh-agent を使用する場合は、次の SSH 機能が必要です。

SSH 接続を行うようにマシンを構成する場合は、次の機能が役に立ちます。ただし、これらは必須機能ではありません。

次のチェックリストを使用し、SSH の実装が N1 Service Provisioning System 5.1 の要件を満たしているか確認してください。

その他の SSH セキュリティー

SSH を使用してリモートエージェントを起動する場合、リモートエージェントは jexec ラッパーを使用して Java 仮想マシンを起動します。このラッパーはスーパーユーザー (root) が所有するネイティブの実行可能ファイルであり、setuid ビットセットを持っています。このファイルはリモートエージェントのインストールに使用したユーザーと同じグループ ID を持ち、このグループに実行許可を与えます。このファイルは、リモートエージェントのインストールに使用したユーザーアカウントが所有する protect というディレクトリに保存されます。このファイルの実行許可が与えられるのは、リモートエージェントを所有するユーザーだけです。ほかのユーザーは jexec ラッパーを実行できません。

どのような場合でも jexec protect のファイルアクセス権が誤って変更されることがないように対策を施す必要があります。

jexec のセキュリティーは、次の変更を加えることによって強化できます。

詳細については、sshd(1M) のマニュアルページを参照してください。

SSH の構成 – 作業概要

以下に、SSH を使用するように N1 Service Provisioning System 5.1 を構成するために必要な作業の概要を示します。

  1. 空のパスワード付きの鍵を使用するか、ssh-agent を使用するかを決定します。

    SSH セキュリティーレベルの選択についての詳細は、ssh-agent または空のパスワード鍵」を参照してください。

  2. SSH 接続を開始するアプリケーション上で鍵を生成します。

    「鍵ペアを作成する」を参照してください。

  3. 生成した鍵をローカルディストリビュータとリモートエージェントにコピーします。

    空のパスワードが付いた鍵を使用するか、ssh-agent を使用するかにもとづいて、次の一覧から適切な作業を選択してください。

  4. SSH 接続を設定します。続いて、接続テストを行います 。このテストはマスターサーバーを起動する前に行なってください。

    「マスターサーバーでの接続の設定とテスト」を参照してください。

  5. SSH を使用するようにローカルディストリビュータとリモートエージェントを設定します。

    「ローカルディストリビュータとリモートエージェントで使用するように SSH を構成する」を参照してください。

  6. (省略可能) CLI Client が存在する場合は、SSH を使用するようにそれらのクライアントを設定します。

    「CLI Client が ssh-agent を使用して SSH 接続を行うように構成する」を参照してください。

鍵の準備

マスターサーバーとローカルディストリビュータ間、マスターサーバーと リモートエージェント間の通信の認証に使用する 公開 / 非公開鍵ペアを生成します。続いて、生成された鍵をローカルディストリビュータとリモートエージェントにコピーします。ssh-agent を使用するか空のパスワード付きの鍵を使用するかにもとづいて、行う作業を選択してください。


注 –

次に、デフォルトの長さで鍵を作成する方法を示します。セキュリティーを最大限に高めるには、できるだけ長い鍵を作成してください。


Procedure鍵ペアを作成する

ssh-agent を使用する場合は、鍵ペアを 1 つ生成すればすみます。空のパスワードを使用する場合は、2 台のマシン間に確立される SSH 接続ごとに鍵ペアを 1 つ生成できます。あるいは、すべての接続に使用するように鍵ペアを 1 つだけ生成することも可能です。この作業を、生成する鍵ペアごとに行います。

始める前に

N1 Service Provisioning System 5.1 に使用するユーザー ID とグループ ID はネットワーク内の全サーバーで同じになるようにしてください。

手順
  1. マスターサーバー (空のパスワードを使用し、接続ごとに鍵ペアを生成する場合はアップストリームのマシン) 上で、鍵を生成します。


    % ssh-keygen –t rsa
    

    鍵を保存するように指示するメッセージが表示されます。

  2. Return を押して、デフォルトの場所に鍵を保存します。

    非公開鍵が /User-home/.ssh/id_rsa に保存されます。公開鍵は、/HOME/.ssh/id_rsa.pub に保存されます。

    User-home には、現在ログインしているユーザーのマスターサーバーマシン上のホームディレクトリを指定します。

    パスワードを指定するためのプロンプトが表示されます。

  3. パスワードを指定する必要があるかどうかを決定します。

    • 空のパスワードの鍵を使用する場合は、パスワードを指定しないでください。Return キーを押して継続します。

    • ssh-agent を使用する場合は、鍵のパスワードを指定してください。

Proceduressh-agent の鍵を設定する

ssh-agent を使用する場合は、この作業を行なってローカルディストリビュータとリモートエージェントに鍵をコピーしてください。

手順
  1. マスターサーバーで、非公開鍵ファイル ~/.ssh/id_rsa をセキュリティー保護された媒体にコピーします。


    % cp /User-home/.ssh/id_rsa path_to_file/
    

    User-home には、現在ログインしているユーザーのマスターサーバーマシン上のホームディレクトリを指定します。path_to_file/ には、非公開鍵ファイルを保存する安全なメディアのパスを指定します。

  2. ローカルファイルシステムから非公開鍵ファイルを削除します。


    % rm /User-home/.ssh/id_rsa
    
  3. SSH を使用するように設定する各ローカルディストリビュータとリモートエージェントに公開鍵をコピーします。~/.ssh/authorized_keys2 ファイルに鍵を保存します。


    % cp /User-home.ssh/id_rsa.pub /User-home-APP/.ssh/authorized_keys2
    

    User-home には、マスターサーバーマシン上のホームディレクトリを指定します。User-home-APP には、現在ログインしているユーザーのローカルディストリビュータまたはリモートエージェントマシン上のホームディレクトリを指定します。

  4. .ssh/ ディレクトリとその親ディレクトリ (存在する場合) が world-writable (誰でも書き込める状態) でないことを確認します。

  5. .ssh/authorized_keys2 ファイルのアクセス権を 600 に変更します。

  6. ssh-agent の転送を使用可能にするため、マスターサーバーとローカルディストリビュータの config.properties ファイルにある次の行を編集します。

    現在の構成は次のとおりです。


    net.ssh.args=-o|BatchMode yes

    この行を編集して -A オプションを含めます。


    net.ssh.args=-o|BatchMode yes|-A

Procedure空のパスワードファイルに鍵を設定する (1 組の鍵ペアを使用する場合)

空のパスワードファイルを使用する場合で、1 組の鍵ペアだけを生成した場合は、この作業を行なってローカルディストリビュータとリモートエージェントに鍵をコピーしてください。

手順
  1. マスターサーバーからアップストリームである各マシンに非公開鍵をコピーします。この鍵をホームディレクトリに保存してください。


    % cp /User-home/.ssh/id_rsa /User-home-upstream/.ssh/id_rsa
    

    User-home には、現在ログインしているユーザーのマスターサーバーマシン上のホームディレクトリを指定します。User-home-upstream には、アップストリームである マシン上のホームディレクトリを指定します。アップストリームマシンとは、ダウンストリームであるマシンとの SSH 接続を開始するマシンです。

    各ローカルディストリビュータに固有の非公開鍵を設定することも、あるいはすべてのローカルディストリビュータに同じ非公開鍵を設定することもできます。

  2. 各ダウンストリームマシンに公開鍵をコピーします。/.ssh/authorized_keys2 ファイルに鍵を保存してください。


    % cp /HOME-MS/.ssh/id_rsa.pub /HOME-downstream/.ssh/authorized_keys2
    

    User-home には、マスターサーバーマシン上のホームディレクトリを指定します。User-home-downstream には、先の手順で設定したマシンの接続先であるローカルディストリビュータマシンまたはリモートエージェントマシン上のホームディレクトリを指定します。SSH を使用して接続するすべてのローカルディストリビュータとリモートエージェントに公開鍵をコピーします。

  3. .ssh/ ディレクトリとその親ディレクトリ (存在する場合) が world-writable (誰でも書き込める状態) でないことを確認します。

  4. 非公開鍵ファイル .ssh/id_rsa がほかのユーザーまたはグループによってアクセスできないことを確認します。

  5. .ssh/authorized_keys2 ファイルのアクセス権を 600 に変更します。

Procedure空のパスワードファイルに鍵を設定する (複数の鍵ペアを使用する場合)

空のパスワードファイルを使用する場合で、SSH 接続ごとに鍵ペアを生成した場合は、この作業を行なってローカルディストリビュータとリモートエージェントに鍵をコピーしてください。

始める前に

この作業は、ネットワーク上で確立されるSSH 接続ごと (つまり鍵ペアごと) に行なってください。

手順
  1. アップストリームマシンから、各ダウンストリームマシンに公開鍵をコピーします。User-home /.ssh/authorized_keys2 ファイルに鍵を保存します。


    % cp /User-home-upstream/.ssh/id_rsa.pub /User-home-downstream/.ssh/authorized_keys2
    

    User-home-upstream には、アップストリームマシン上のホームディレクトリを指定します。Use-home-downstream には、アップストリームマシンの接続先であるローカルディストリビュータまたはリモートエージェントマシン上のホームディレクトリを指定します。

  2. .ssh/ ディレクトリとその親ディレクトリ (存在する場合) が world-writable (誰でも書き込める状態) でないことを確認します。

  3. 非公開鍵ファイル .ssh/id_rsa がほかのユーザーまたはグループによってアクセスできないことを確認します。

  4. .ssh/authorized_keys2 ファイルのアクセス権を 600 に変更します。

マスターサーバーでの接続の設定とテスト

この節では、N1 Service Provisioning System 5.1 で SSH を使用する前に実施すべき SSH の初期設定とテストについて説明します。 ssh-agent を使用する場合は、設定とテストの作業を開始する前に ssh-agent を起動する必要があります。

Procedureマスターサーバーで ssh-agent を起動する

この作業は、ssh-agent を使用する場合にのみ行います。この作業は、マスターサーバーを起動する前に行なってください。


注 –

次の設定作業で使用する sshssh-add、および cr_server start の SSH 設定コマンドは、すべて ssh-agent の起動に使用したセッションで実行する必要があります。このセッションが終了している場合は、稼働している ssh-agent プログラムを停止し、新しい ssh-agent プログラムを起動しなければなりません。


手順
  1. ssh-agent を起動します。


    % eval `ssh-agent`
    

    ssh-agent が起動し、このプログラムによって 2 つの環境変数が設定されます。 SSH_AUTH_SOCKSSH_AGENT_PID は、ssh-agent に接続するために sshssh-add によって使用されます。

  2. 生成した非公開鍵をアップロードします。


    % ssh-add path-to-file/
    

    path-to-file/ には、非公開鍵ファイルを保存した安全なメディアのパスを指定します。

    パスワードを指定するようにメッセージが表示されます。

  3. 鍵を生成した際に作成したパスワードを指定します。

ssh-agent の停止

ssh-agent は、コマンド eval `ssh-agent –k` を実行して停止できます。

このコマンドは、SSH_AGENT_PID 変数を使用して ssh-agent プロセスに信号を送り、このプロセスを停止します。また、ssh-agent の起動時に設定された環境変数の解除も行います。

Procedureマスターサーバーで接続の設定とテストを行う

始める前に

ssh-agent を使用する場合は、「マスターサーバーで ssh-agent を起動する」 の操作説明に従って、必ず ssh-agent を起動してください。


注意 – 注意 –

設定作業はセッションに依存します。このため、SSH コマンド、sshssh-add、および cr_server start はすべて ssh-agent の起動時に使用したセッションで実行する必要があります。このセッションが終了している場合は、稼働している ssh-agent プログラムを停止し、新しい ssh-agent プログラムを起動しなければなりません。また、非公開鍵もアップロードする必要もあります。


手順
  1. SSH の接続経路をテストします。


    % ssh target-host-IP set
    % ssh -A -t target-host-IP ls -l
    

    -A オプションは、 ssh-agent を使用する場合にのみ使用してください。target-host-IP には、このマシンの接続先となるマシンの IP アドレスを指定します。

    例として、マスターサーバー (MS)、ローカルディストリビュータ (LD1、LD2、LD3)、リモートエージェント (RA1、RA2、RA3、RA4) から構成された次のようなネットワークを考えてみましょう。


    MS
     | \
     |  \
     |   \
     LD1  LD2
     | \     \
     |  \     LD3
     |   \    |\
     |   |    | \ 
     |   |    |  \ 
     |   |    |   \
     RA1 RA2  RA3  RA4

    このネットワーク例では、マスターサーバー上で次のコマンドを実行し、LD1、LD2、RA1、RA2、RA3、RA4 をネットワーク上のローカルディストリビュータとリモートエージェントの IP アドレスに置き換えることにより、SSH 接続経路をテストします。


    % ssh -A -t LD1 ssh -t RA1 set
    % ssh -A -t LD1 ssh -t RA2 set
    % ssh -A -t LD2 ssh -A -t LD3 ssh -t RA3 set
    % ssh -A -t LD2 ssh -A -t LD3 ssh -t RA4 set
    

    これらのコマンドは、SSH を使用してダウンストリームマシンに接続する場合にマスターサーバーが使用する経路をたどります。各コマンドを実行することで、SSH は引数として指定されたマシンとの通信に必要なホスト鍵を交換できます。

    SSH は、ホスト鍵の交換を許可するかどうかを尋ねるメッセージを表示します。

  2. 各メッセージに「yes」と答えます。

  3. すべてのコマンドの出力を検証し、環境変数が正しく設定されているか確認します。

    PATH 変数には、ユーザー環境の一部であるディレクトリ (/bin/usr/bin など) が設定されていなければなりません。

  4. SSH の接続経路をもう一度テストします。

    手順 1 と同じコマンドを使用して接続経路をテストし直し、情報の入力を求めるプロンプトが表示されないことを確認します。

設定とテストの繰り返し

鍵のどれかを変更する場合は、必要に応じてこの作業を再度行なってください。サーバーの設定によっては、マシンのどれかをリブートするたびにこの作業を行わなければならないこともあります。

アプリケーションに合わせて SSH を構成する

マスターサーバーで SSH の設定とテストを完了したあと、マスターサーバー が SSH を使用して接続できるように N1 Service Provisioning System 5.1 内のその他のマシンを構成します。

Procedureローカルディストリビュータとリモートエージェントで使用するように SSH を構成する

マスターサーバーからリモートエージェントの方向へ向かって N1 Service Provisioning System 5.1 ネットワーク内をたどり、中間的なローカルディストリビュータを検出順に構成することにより、SSH 構成を完了しておく必要があります。基本的に、これはツリーネットワークを先行順にトラバースする処理です。

例として、マスターサーバー (MS)、ローカルディストリビュータ (LD1、LD2、LD3)、リモートエージェント (RA1、RA2、RA3、RA4) から構成された次のようなネットワークを考えてみましょう。


MS
 | \
 |  \
 |   \
 LD1  LD2
 | \     \
 |  \     LD3
 |   \    |\
 |   |    | \ 
 |   |    |  \ 
 |   |    |   \
 RA1 RA2  RA3  RA4

LD1、RA1、RA2、LD2、LD3、RA3、RA4 の順でネットワークを構成します。この順序を厳密に守り、1 つのマシンの構成を完了してから次のマシンに進みます。

手順
  1. マスターサーバー ブラウザインタフェースを使用し、構成するマシンの「Host Details」ページを表示します。

  2. そのマシンにどのアプリケーションを構成するかに応じて、ローカルディストリビュータセクションまたはリモートエージェントセクションに接続の詳細情報を追加します。

  3. 接続タイプを ssh と指定します。

  4. 「Advanced Parameters」フィールドに次のテキストを追加します。


    cprefix=/N1SPS5.1-Home/application
    

    N1SPS5.1–Home には、アプリケーションのホームディレクトリを指定します。application には、agent (リモートエージェントを構成している場合) または ld (ローカルディストリビュータを構成している場合) と指定します。

    たとえば、N1 Service Provisioning System 5.1 が /opt/SUNWn1sps/N1_Service_Provisioning_System_5.1/ にインストールされる場合で、リモートエージェントを構成しているときは、「Advanced Parameters」フィールドに次のテキストを追加します。


    cprefix=/opt/SUNWn1sps/N1_Service_Provisioning_System_5.1/agent
  5. ホストの詳細情報を保存します。

  6. このマシンでリモートエージェントインスタンスまたはローカルディストリビュータインスタンスが実行されていないことを確認します。

  7. このアプリケーションインスタンスの「Host Details」ページで「Test Connection」をクリックします。

  8. この作業を、ネットワーク内のマシンごとに繰り返します。

ProcedureCLI Client が ssh-agent を使用して SSH 接続を行うように構成する

この作業は、CLI Client が ssh-agent を使用して SSH 接続を行うように構成する場合に行なってください。

手順
  1. マスターサーバーと、CLI Client のインストール先であるマシンで、新しい OS ユーザーアカウントを作成します。

    このアカウントは、マスターサーバー、ローカルディストリビュータまたはリモートエージェントのインストール時に指定したアカウントとは別のものでなければなりません。

  2. 先のステップで作成した新しいユーザーでマスターサーバー にログインします。

  3. 「鍵ペアを作成する」の手順に従って、作成した新規ユーザー用の公開鍵と非公開鍵を生成します。

    マスターサーバー、ローカルディストリビュータ、リモートエージェント間の通信用として生成した鍵を再利用することはできません。

  4. マスターサーバーで、非公開鍵ファイルを安全なメディアにコピーします。


    % cp /User-home/.ssh/id_rsa path-to-file/.ssh/id_rsa
    

    User-home には、現在ログインしているユーザーのマスターサーバーマシン上のホームディレクトリを指定します。path-to-file/ には、非公開鍵ファイルを保存する安全なメディアのパスを指定します。

  5. ローカルファイルシステムから非公開鍵ファイルを削除します。


    % rm /User-home/.ssh/id_rsa
    
  6. マスターサーバーで、そのユーザーの /.ssh/authorized_keys2 ファイルに公開鍵を連結します。


    % cat /User-home/.ssh/id_rsa.pub >> /HOME-MS/.ssh/authorized_keys2
    

    User-home には、マスターサーバーマシン上のホームディレクトリを指定します。

  7. 先に作成した新規ユーザーのアカウントで、CLI Client マシンにログインします。

  8. ssh-agent を起動します。


    % ssh-agent > /User-home/.ssh/agent_vars
    

    User-home には、現在ログインしているユーザーの CLI Client マシン上のホームディレクトリを指定します。

  9. .profile .cshrc、または .bash_profile ファイルに次の行を追加します。


    . /User-home/.ssh/agent_vars

    User-home には、CLI Client マシン上のホームディレクトリを指定します。

  10. マスターサーバーからログアウトし、ログインし直します。

  11. 生成した非公開鍵をアップロードします。


    % ssh-add path-to-file/
    

    path-to-file/ には、非公開鍵ファイルを保存した安全なメディアのパスを指定します。

    以上の操作で、CLI Client はマスターサーバーに接続する時の認証に SSH と ssh-agent を使用するようになります。

  12. ローカルホストからの接続だけを受け入れるように、マスターサーバーを構成します。手順については、「JVM セキュリティーポリシーの構成」を参照してください。

ssh-agent の停止

注 –

ssh-agent を停止する場合は、CLI Client 上で次のコマンドを実行します。


% eval `ssh-agent –k >User-home/.ssh/agent_vars`

User-home には、現在ログインしているユーザーの CLI Client マシン上のホームディレクトリを指定します。


ProcedureCLI Client が空のパスワードで SSH 接続を行うように構成する

この作業は、CLI Client が空のパスワードを使用して SSH 接続を行うように構成する場合に行なってください。

手順
  1. マスターサーバーと、CLI Client のインストール先であるマシンで、新しい OS ユーザーアカウントを作成します。

    このアカウントは、マスターサーバー、ローカルディストリビュータ、またはリモートエージェントのインストール時に指定したアカウントとは別のものでなければなりません。

  2. 先のステップで作成した新しいユーザーで、CLI Client マシンにログインします。

  3. 「鍵ペアを作成する」の手順に従って、作成した新規ユーザー用の公開鍵と非公開鍵を生成します。

    マスターサーバー 、ローカルディストリビュータ、リモートエージェント間の通信用として生成した鍵を再利用することはできません。

  4. CLI Client 上で、マスターサーバーマシン上にある新しいユーザーの authorized_keys2 ファイルに公開鍵ファイルをコピーします。


    % cp User-home-CLI/.ssh/id_rsa.pub User-home-MS/.ssh/id_rsa.pub
    

    User-home-CLI には、CLI Client マシン上のホームディレクトリを指定します。User-home-MS には、マスターサーバーマシン上のホームディレクトリを指定します。

  5. マスターサーバーで公開鍵をそのユーザーの /.ssh/authorized_keys2 ファイルに連結します。


    % cat /User-home/.ssh/id_rsa.pub >> /User-home/.ssh/authorized_keys2
    

    User-home には、現在ログインしているユーザーの マスターサーバーマシン上のホームディレクトリを指定します。

  6. 先に作成した新規ユーザーのアカウントで、CLI Client マシンにログインします。

  7. SSH 接続をテストします。


    % ssh IP-Address-MS set
    

    IP-Address-MS には、マスターサーバーマシンの IP アドレスを指定します。

    ここで、鍵の交換をするかどうかを尋ねるメッセージが表示されることがあります。

  8. このメッセージが表示された場合は、「yes」と答えます。

  9. PATH 変数が正しく設定されているか確認します。

    PATH 変数には、 /bin, /usr/bin、およびユーザー環境の一部であるそのほかのあらゆるディレクトリが含まれている必要があります。

  10. ローカルホストからの接続だけを受け入れるように、マスターサーバーを構成します。手順については、「JVM セキュリティーポリシーの構成」を参照してください。

SSH の上級パラメータとコマンドのリファレンス

上級パラメータのリファレンス

「Host Details」ページの「Advanced Parameters」フィールドに、SSH 構成情報をさらに指定できます。次に、上級パラメータとして受け入れられるものを示します。複数のパラメータを使用する場合は、それらをコンマで区切って入力します。「Advanced Parameters」フィールドには、不要なスペースは入れないようにしてください。

cprefix

cprefix パラメータは、すべてのローカルディストリビュータおよびリモートエージェントに必要です。「Advanced Parameters」フィールド内のパラメータの構文は次のとおりです。


cprefix=/N1SPS5.1-Home/application

N1SPS5.1–Home には、アプリケーションのホームディレクトリを指定します。application には、agent (リモートエージェントを構成している場合) または ld (ローカルディストリビュータを構成している場合) と指定します。


例 7–1 cprefix の例

N1 Service Provisioning System 5.1 が /opt/SUNWn1sps/ にインストールされていて、リモートエージェントの構成を行う場合には、「Advanced Parameters」フィールドに次のテキストを追加します。


cprefix=/opt/SUNWn1sps/N1_Service_Provisioning_System/agent

sshpath

ターゲットサーバー上の PATH に SSH 実行可能ファイルのパスをまだ追加しておらず、追加を望まない場合は、このパラメータを使用して SSH 実行可能ファイルのパスを指定できます。「Advanced Parameters」フィールド内のパラメータの構文は次のとおりです。


sshpath=/path-to-SSH

path-to-SSH には、SSH 実行可能ファイルがインストールされているディレクトリを指定します。


例 7–2 sshpath の例

SSH 実行可能ファイルが /usr/local/bin/ssh ディレクトリにインストールされている場合は、「Advanced Parameters」フィールドには次のテキストを追加します。


sshpath=/usr/local/bin/ssh

sshargs

特定のホストで ssh コマンドを実行するときにその ssh コマンドにコマンド行引数を追加する場合は、そのホストの「Advanced Parameters」フィールドに引数を指定できます。「Advanced Parameters」フィールド内のパラメータの構文は次のとおりです。


sshargs=-option|-option

option には、ssh コマンドに提供するコマンド行オプションを指定します。複数のオプションを追加する場合は、それらを | で区切ってください。


例 7–3 sshargs の例

ssh コマンドによって認証エージェントの転送機能を有効にする場合は、「Advanced Parameters」フィールドに -A オプションを指定します。


sshargs=-o|BatchMode yes|-A

OpenSSH 2.0 コマンドリファレンス

この節では、この章の操作説明で挙げられている OpenSSH 2.0 のコマンドとオプションについて説明します。別バージョンの SSH を使用している場合は、次に示すものと同等のコマンドとオプションをそのバージョンで確認してください。SSH の構成操作を行う際には、それらの同等コマンドを使用してください。

表 7–1 OpenSSH 2.0 コマンド

ツール 

説明 

ssh

アプリケーションがほかのアプリケーションをリモートマシンから呼び出すことを許可します。SSH 通信を行うように構成されたソフトウェアは、ssh コマンドを使用してリモートアプリケーション (リモートエージェントまたはローカルディストリビュータ) を呼び出し、SSH の標準入出力ストリームを使用してそれらのリモートアプリケーションとの通信を行います。

ssh-agent

パスワード付きの非公開鍵を使用する場合に使用します。アプリケーションの SSH 呼び出しが ssh-agent による通信で認証を行えるように、ssh-agent を使って鍵をアップロードします。

ssh-add

ssh-agent に非公開鍵をアップロードします。

ssh-keygen

SSH 接続を保護するため、公開 / 非公開鍵のペアを生成します。 

ssh コマンドでは、次のオプションを使用できます。

-A

認証エージェントの転送機能を有効にします。

-o `BatchMode yes'

パスフレーズクエリーを無効にします。

-t

コマンドが発行されている場合も tty を割り当てます。

ssh-keygen コマンドでは、次のオプションを使用できます。

-t rsa

生成する鍵のタイプとして RSA を指定します。

ssh-agent コマンドでは、次のオプションを使用できます。

-k

環境変数 SSH_AGENT_PID 内の pid セットを使用してエージェントを強制終了します。ほかの実装では、異なる環境変数を使用する可能性があります。