この章では、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 は、リモートコンピュータに安全にアクセスするための UNIX ベースのコマンド群/プロトコルです。SSH は、電子証明書とパスワードの暗号化を利用して、接続の両端で認証を行うことにより、ネットワーク上のクライアントとサーバーの通信を保護します。また、RSA 公開鍵暗号を使用して接続と認証を管理します。SSH は、Telnet やほかのシェルベース通信方式よりも安全性が高く、Web サーバーなどのリモートサーバーの管理に使用されます。
ほかの接続タイプと異なり、2 つの N1 Service Provisioning System 5.1 アプリケーション間に SSH 接続を設定した場合、ダウンストリームのアプリケーションは手動で起動する必要がありません。ダウンストリームのアプリケーションは、必要な場合にアップストリームのアプリケーションによって自動的に起動されます。ダウンストリームのアプリケーションは、使用されている間は継続して動作しますが、一定の時間 (この時間は設定可能) 使用されないと自動的に停止します。
SSH 接続では、ダウンストリームのアプリケーションの手動起動は行わないでください。たとえば、SSH を使用してリモートエージェントに接続するようにローカルディストリビュータを設定した場合、リモートエージェントを手動では起動しないでください。ローカルディストリビュータは、必要時にリモートエージェントを自動的に起動します。リモートエージェントは、使用されている間は継続して作動します。リモートエージェントが一定時間使用されなかった場合、ローカルディストリビュータは自動的にリモートエージェントを停止します。
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 を使用してダウンストリームのアプリケーションに接続しているマスターサーバーとローカルディストリビュータはすべて、非公開鍵を持っていなければなりません。この方法は安全性に劣ります。
N1 Service Provisioning System 5.1 には、次の SSH 機能が必要です。
ssh によるリモートコマンド呼び出し
公開 / 非公開鍵ペアによる認証
BatchMode yes インタラクション (オペレータの介入なしで ssh コマンドを呼び出す機能) のサポート
ssh-agent を使用する場合は、次の SSH 機能が必要です。
ssh-agent のサポート
SSH における ssh-agent 転送機能のサポート。Open SSH での -A オプションの使用
SSH 接続を行うようにマシンを構成する場合は、次の機能が役に立ちます。ただし、これらは必須機能ではありません。
リモートコマンドを呼び出す時の tty の強制割り当て。OpenSSH での -t オプションの使用
ssh エージェントの強制終了。OpenSSH での ssh-agent コマンドの -k オプションの使用
高度なセキュリティーを実現する RSA 鍵の生成。OpenSSH で - t rsa を使用します。
次のチェックリストを使用し、SSH の実装が N1 Service Provisioning System 5.1 の要件を満たしているか確認してください。
ssh-keygen コマンドは、SSH 呼び出しの認証に使用できる 公開 / 非公開鍵ペアを生成する必要があります。
追加情報なしでホスト鍵の交換やパスワードの取得が可能な指定のホストで、認証用非公開鍵がパスワードなしで (または空のパスワード付きで) 生成された場合、次の ssh コマンドを実行できる必要があります。
% ssh –o `BatchMode yes' hostname |
パスワード付きで生成された非公開鍵を使用してアップロードされた現在のホストで ssh-agent を実行し、現在のホストから host1、host2、host3 へとホップしたとします。このあと、追加情報なしでホスト鍵の交換やパスワードの取得が可能な場合、次の ssh コマンドを実行できる必要があります。
% ssh –o `BatchMode yes' –A host1 ssh –o `BatchMode yes' –A host2 ssh –o `BatchMode yes' host3 |
ssh コマンドは、その標準の入出力とエラーストリームを、リモートマシンで実行されているコマンドに対して正しくパイプできる必要があります。
ssh-add コマンドは、パスワード付きの非公開鍵を認証用として ssh-agent にアップロードできる必要があります。
SSH を使用してリモートエージェントを起動する場合、リモートエージェントは jexec ラッパーを使用して Java 仮想マシンを起動します。このラッパーはスーパーユーザー (root) が所有するネイティブの実行可能ファイルであり、setuid ビットセットを持っています。このファイルはリモートエージェントのインストールに使用したユーザーと同じグループ ID を持ち、このグループに実行許可を与えます。このファイルは、リモートエージェントのインストールに使用したユーザーアカウントが所有する protect というディレクトリに保存されます。このファイルの実行許可が与えられるのは、リモートエージェントを所有するユーザーだけです。ほかのユーザーは jexec ラッパーを実行できません。
どのような場合でも jexec と protect のファイルアクセス権が誤って変更されることがないように対策を施す必要があります。
jexec のセキュリティーは、次の変更を加えることによって強化できます。
JVM 実行ファイル (通常、シェルスクリプト) はアプリケーションを所有するスーパーユーザー (root) またはユーザーによって所有されるようにし、ほかのユーザーやグループには書き込み許可を与えないないようにします。N1 Service Provisioning System 5.1 で JRE をインストールする場合は、N1SPS5.1-home /common/jre 内の全ファイルがアプリケーションを所有するユーザーによって所有されるようにし、ほかのどんなユーザーやグループにも書き込みアクセス権を与えないようにします。
アプリケーションを所有するユーザーのユーザー ID は、SSH を使用したログインにだけ許可します。SSH を使用してログインする場合は、公開鍵認証だけを許可します。ほかのどんなユーザーまたはグループにも、/N1SPS5.1-home /.ssh ディレクトリに対するいかなるアクセス権も付与しません。
etc/sshd_config ファイルにパスワード認証を無効にする次の行を含めることにより、公開鍵認証だけを許可するように SSH サーバーを構成します。
PasswordAuthentication no |
etc/sshd_config ファイルに、RhostsRSAAuthentication を含む行が存在しないようにします (デフォルトではこの認証が許可されていないため)。さらに、RSAAuthentication という語が存在する場合は、この値を yes (デフォルト) に設定する必要があります。
リモートエージェントのセキュリティーをさらに強化する場合は、/N1SPS5.1-home/.ssh/authorized_keys2 ファイルを編集し、マスターサーバーの公開鍵が含まれる行の前に次のテキストを追加します。
no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty |
詳細については、sshd(1M) のマニュアルページを参照してください。
以下に、SSH を使用するように N1 Service Provisioning System 5.1 を構成するために必要な作業の概要を示します。
空のパスワード付きの鍵を使用するか、ssh-agent を使用するかを決定します。
SSH セキュリティーレベルの選択についての詳細は、「ssh-agent または空のパスワード鍵」を参照してください。
SSH 接続を開始するアプリケーション上で鍵を生成します。
「鍵ペアを作成する」を参照してください。
生成した鍵をローカルディストリビュータとリモートエージェントにコピーします。
空のパスワードが付いた鍵を使用するか、ssh-agent を使用するかにもとづいて、次の一覧から適切な作業を選択してください。
SSH 接続を設定します。続いて、接続テストを行います 。このテストはマスターサーバーを起動する前に行なってください。
「マスターサーバーでの接続の設定とテスト」を参照してください。
SSH を使用するようにローカルディストリビュータとリモートエージェントを設定します。
(省略可能) CLI Client が存在する場合は、SSH を使用するようにそれらのクライアントを設定します。
マスターサーバーとローカルディストリビュータ間、マスターサーバーと リモートエージェント間の通信の認証に使用する 公開 / 非公開鍵ペアを生成します。続いて、生成された鍵をローカルディストリビュータとリモートエージェントにコピーします。ssh-agent を使用するか空のパスワード付きの鍵を使用するかにもとづいて、行う作業を選択してください。
次に、デフォルトの長さで鍵を作成する方法を示します。セキュリティーを最大限に高めるには、できるだけ長い鍵を作成してください。
ssh-agent を使用する場合は、鍵ペアを 1 つ生成すればすみます。空のパスワードを使用する場合は、2 台のマシン間に確立される SSH 接続ごとに鍵ペアを 1 つ生成できます。あるいは、すべての接続に使用するように鍵ペアを 1 つだけ生成することも可能です。この作業を、生成する鍵ペアごとに行います。
N1 Service Provisioning System 5.1 に使用するユーザー ID とグループ ID はネットワーク内の全サーバーで同じになるようにしてください。
マスターサーバー (空のパスワードを使用し、接続ごとに鍵ペアを生成する場合はアップストリームのマシン) 上で、鍵を生成します。
% ssh-keygen –t rsa |
鍵を保存するように指示するメッセージが表示されます。
Return を押して、デフォルトの場所に鍵を保存します。
非公開鍵が /User-home/.ssh/id_rsa に保存されます。公開鍵は、/HOME/.ssh/id_rsa.pub に保存されます。
User-home には、現在ログインしているユーザーのマスターサーバーマシン上のホームディレクトリを指定します。
パスワードを指定するためのプロンプトが表示されます。
パスワードを指定する必要があるかどうかを決定します。
空のパスワードの鍵を使用する場合は、パスワードを指定しないでください。Return キーを押して継続します。
ssh-agent を使用する場合は、鍵のパスワードを指定してください。
ssh-agent を使用する場合は、この作業を行なってローカルディストリビュータとリモートエージェントに鍵をコピーしてください。
マスターサーバーで、非公開鍵ファイル ~/.ssh/id_rsa をセキュリティー保護された媒体にコピーします。
% cp /User-home/.ssh/id_rsa path_to_file/ |
User-home には、現在ログインしているユーザーのマスターサーバーマシン上のホームディレクトリを指定します。path_to_file/ には、非公開鍵ファイルを保存する安全なメディアのパスを指定します。
ローカルファイルシステムから非公開鍵ファイルを削除します。
% rm /User-home/.ssh/id_rsa |
SSH を使用するように設定する各ローカルディストリビュータとリモートエージェントに公開鍵をコピーします。~/.ssh/authorized_keys2 ファイルに鍵を保存します。
% cp /User-home.ssh/id_rsa.pub /User-home-APP/.ssh/authorized_keys2 |
User-home には、マスターサーバーマシン上のホームディレクトリを指定します。User-home-APP には、現在ログインしているユーザーのローカルディストリビュータまたはリモートエージェントマシン上のホームディレクトリを指定します。
.ssh/ ディレクトリとその親ディレクトリ (存在する場合) が world-writable (誰でも書き込める状態) でないことを確認します。
.ssh/authorized_keys2 ファイルのアクセス権を 600 に変更します。
ssh-agent の転送を使用可能にするため、マスターサーバーとローカルディストリビュータの config.properties ファイルにある次の行を編集します。
現在の構成は次のとおりです。
net.ssh.args=-o|BatchMode yes |
この行を編集して -A オプションを含めます。
net.ssh.args=-o|BatchMode yes|-A |
空のパスワードファイルを使用する場合で、1 組の鍵ペアだけを生成した場合は、この作業を行なってローカルディストリビュータとリモートエージェントに鍵をコピーしてください。
マスターサーバーからアップストリームである各マシンに非公開鍵をコピーします。この鍵をホームディレクトリに保存してください。
% cp /User-home/.ssh/id_rsa /User-home-upstream/.ssh/id_rsa |
User-home には、現在ログインしているユーザーのマスターサーバーマシン上のホームディレクトリを指定します。User-home-upstream には、アップストリームである マシン上のホームディレクトリを指定します。アップストリームマシンとは、ダウンストリームであるマシンとの SSH 接続を開始するマシンです。
各ローカルディストリビュータに固有の非公開鍵を設定することも、あるいはすべてのローカルディストリビュータに同じ非公開鍵を設定することもできます。
各ダウンストリームマシンに公開鍵をコピーします。/.ssh/authorized_keys2 ファイルに鍵を保存してください。
% cp /HOME-MS/.ssh/id_rsa.pub /HOME-downstream/.ssh/authorized_keys2 |
User-home には、マスターサーバーマシン上のホームディレクトリを指定します。User-home-downstream には、先の手順で設定したマシンの接続先であるローカルディストリビュータマシンまたはリモートエージェントマシン上のホームディレクトリを指定します。SSH を使用して接続するすべてのローカルディストリビュータとリモートエージェントに公開鍵をコピーします。
.ssh/ ディレクトリとその親ディレクトリ (存在する場合) が world-writable (誰でも書き込める状態) でないことを確認します。
非公開鍵ファイル .ssh/id_rsa がほかのユーザーまたはグループによってアクセスできないことを確認します。
.ssh/authorized_keys2 ファイルのアクセス権を 600 に変更します。
空のパスワードファイルを使用する場合で、SSH 接続ごとに鍵ペアを生成した場合は、この作業を行なってローカルディストリビュータとリモートエージェントに鍵をコピーしてください。
この作業は、ネットワーク上で確立されるSSH 接続ごと (つまり鍵ペアごと) に行なってください。
アップストリームマシンから、各ダウンストリームマシンに公開鍵をコピーします。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 には、アップストリームマシンの接続先であるローカルディストリビュータまたはリモートエージェントマシン上のホームディレクトリを指定します。
.ssh/ ディレクトリとその親ディレクトリ (存在する場合) が world-writable (誰でも書き込める状態) でないことを確認します。
非公開鍵ファイル .ssh/id_rsa がほかのユーザーまたはグループによってアクセスできないことを確認します。
.ssh/authorized_keys2 ファイルのアクセス権を 600 に変更します。
この節では、N1 Service Provisioning System 5.1 で SSH を使用する前に実施すべき SSH の初期設定とテストについて説明します。 ssh-agent を使用する場合は、設定とテストの作業を開始する前に ssh-agent を起動する必要があります。
この作業は、ssh-agent を使用する場合にのみ行います。この作業は、マスターサーバーを起動する前に行なってください。
次の設定作業で使用する ssh、ssh-add、および cr_server start の SSH 設定コマンドは、すべて ssh-agent の起動に使用したセッションで実行する必要があります。このセッションが終了している場合は、稼働している ssh-agent プログラムを停止し、新しい ssh-agent プログラムを起動しなければなりません。
ssh-agent を起動します。
% eval `ssh-agent` |
ssh-agent が起動し、このプログラムによって 2 つの環境変数が設定されます。 SSH_AUTH_SOCK と SSH_AGENT_PID は、ssh-agent に接続するために ssh と ssh-add によって使用されます。
生成した非公開鍵をアップロードします。
% ssh-add path-to-file/ |
path-to-file/ には、非公開鍵ファイルを保存した安全なメディアのパスを指定します。
パスワードを指定するようにメッセージが表示されます。
鍵を生成した際に作成したパスワードを指定します。
ssh-agent は、コマンド eval `ssh-agent –k` を実行して停止できます。
このコマンドは、SSH_AGENT_PID 変数を使用して ssh-agent プロセスに信号を送り、このプロセスを停止します。また、ssh-agent の起動時に設定された環境変数の解除も行います。
ssh-agent を使用する場合は、「マスターサーバーで ssh-agent を起動する」 の操作説明に従って、必ず ssh-agent を起動してください。
設定作業はセッションに依存します。このため、SSH コマンド、ssh、ssh-add、および cr_server start はすべて ssh-agent の起動時に使用したセッションで実行する必要があります。このセッションが終了している場合は、稼働している ssh-agent プログラムを停止し、新しい ssh-agent プログラムを起動しなければなりません。また、非公開鍵もアップロードする必要もあります。
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 は、ホスト鍵の交換を許可するかどうかを尋ねるメッセージを表示します。
各メッセージに「yes」と答えます。
すべてのコマンドの出力を検証し、環境変数が正しく設定されているか確認します。
PATH 変数には、ユーザー環境の一部であるディレクトリ (/bin、/usr/bin など) が設定されていなければなりません。
SSH の接続経路をもう一度テストします。
手順 1 と同じコマンドを使用して接続経路をテストし直し、情報の入力を求めるプロンプトが表示されないことを確認します。
鍵のどれかを変更する場合は、必要に応じてこの作業を再度行なってください。サーバーの設定によっては、マシンのどれかをリブートするたびにこの作業を行わなければならないこともあります。
マスターサーバーで SSH の設定とテストを完了したあと、マスターサーバー が SSH を使用して接続できるように N1 Service Provisioning System 5.1 内のその他のマシンを構成します。
マスターサーバーからリモートエージェントの方向へ向かって 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 つのマシンの構成を完了してから次のマシンに進みます。
マスターサーバー ブラウザインタフェースを使用し、構成するマシンの「Host Details」ページを表示します。
そのマシンにどのアプリケーションを構成するかに応じて、ローカルディストリビュータセクションまたはリモートエージェントセクションに接続の詳細情報を追加します。
接続タイプを ssh と指定します。
「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 |
ホストの詳細情報を保存します。
このマシンでリモートエージェントインスタンスまたはローカルディストリビュータインスタンスが実行されていないことを確認します。
このアプリケーションインスタンスの「Host Details」ページで「Test Connection」をクリックします。
この作業を、ネットワーク内のマシンごとに繰り返します。
この作業は、CLI Client が ssh-agent を使用して SSH 接続を行うように構成する場合に行なってください。
マスターサーバーと、CLI Client のインストール先であるマシンで、新しい OS ユーザーアカウントを作成します。
このアカウントは、マスターサーバー、ローカルディストリビュータまたはリモートエージェントのインストール時に指定したアカウントとは別のものでなければなりません。
先のステップで作成した新しいユーザーでマスターサーバー にログインします。
「鍵ペアを作成する」の手順に従って、作成した新規ユーザー用の公開鍵と非公開鍵を生成します。
マスターサーバー、ローカルディストリビュータ、リモートエージェント間の通信用として生成した鍵を再利用することはできません。
マスターサーバーで、非公開鍵ファイルを安全なメディアにコピーします。
% cp /User-home/.ssh/id_rsa path-to-file/.ssh/id_rsa |
User-home には、現在ログインしているユーザーのマスターサーバーマシン上のホームディレクトリを指定します。path-to-file/ には、非公開鍵ファイルを保存する安全なメディアのパスを指定します。
ローカルファイルシステムから非公開鍵ファイルを削除します。
% rm /User-home/.ssh/id_rsa |
マスターサーバーで、そのユーザーの /.ssh/authorized_keys2 ファイルに公開鍵を連結します。
% cat /User-home/.ssh/id_rsa.pub >> /HOME-MS/.ssh/authorized_keys2 |
User-home には、マスターサーバーマシン上のホームディレクトリを指定します。
先に作成した新規ユーザーのアカウントで、CLI Client マシンにログインします。
ssh-agent を起動します。
% ssh-agent > /User-home/.ssh/agent_vars |
User-home には、現在ログインしているユーザーの CLI Client マシン上のホームディレクトリを指定します。
.profile、 .cshrc、または .bash_profile ファイルに次の行を追加します。
. /User-home/.ssh/agent_vars |
User-home には、CLI Client マシン上のホームディレクトリを指定します。
マスターサーバーからログアウトし、ログインし直します。
生成した非公開鍵をアップロードします。
% ssh-add path-to-file/ |
path-to-file/ には、非公開鍵ファイルを保存した安全なメディアのパスを指定します。
以上の操作で、CLI Client はマスターサーバーに接続する時の認証に SSH と ssh-agent を使用するようになります。
ローカルホストからの接続だけを受け入れるように、マスターサーバーを構成します。手順については、「JVM セキュリティーポリシーの構成」を参照してください。
ssh-agent を停止する場合は、CLI Client 上で次のコマンドを実行します。
% eval `ssh-agent –k >User-home/.ssh/agent_vars` |
User-home には、現在ログインしているユーザーの CLI Client マシン上のホームディレクトリを指定します。
この作業は、CLI Client が空のパスワードを使用して SSH 接続を行うように構成する場合に行なってください。
マスターサーバーと、CLI Client のインストール先であるマシンで、新しい OS ユーザーアカウントを作成します。
このアカウントは、マスターサーバー、ローカルディストリビュータ、またはリモートエージェントのインストール時に指定したアカウントとは別のものでなければなりません。
先のステップで作成した新しいユーザーで、CLI Client マシンにログインします。
「鍵ペアを作成する」の手順に従って、作成した新規ユーザー用の公開鍵と非公開鍵を生成します。
マスターサーバー 、ローカルディストリビュータ、リモートエージェント間の通信用として生成した鍵を再利用することはできません。
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 には、マスターサーバーマシン上のホームディレクトリを指定します。
マスターサーバーで公開鍵をそのユーザーの /.ssh/authorized_keys2 ファイルに連結します。
% cat /User-home/.ssh/id_rsa.pub >> /User-home/.ssh/authorized_keys2 |
User-home には、現在ログインしているユーザーの マスターサーバーマシン上のホームディレクトリを指定します。
先に作成した新規ユーザーのアカウントで、CLI Client マシンにログインします。
SSH 接続をテストします。
% ssh IP-Address-MS set |
IP-Address-MS には、マスターサーバーマシンの IP アドレスを指定します。
ここで、鍵の交換をするかどうかを尋ねるメッセージが表示されることがあります。
このメッセージが表示された場合は、「yes」と答えます。
PATH 変数が正しく設定されているか確認します。
PATH 変数には、 /bin, /usr/bin、およびユーザー環境の一部であるそのほかのあらゆるディレクトリが含まれている必要があります。
ローカルホストからの接続だけを受け入れるように、マスターサーバーを構成します。手順については、「JVM セキュリティーポリシーの構成」を参照してください。
「Host Details」ページの「Advanced Parameters」フィールドに、SSH 構成情報をさらに指定できます。次に、上級パラメータとして受け入れられるものを示します。複数のパラメータを使用する場合は、それらをコンマで区切って入力します。「Advanced Parameters」フィールドには、不要なスペースは入れないようにしてください。
cprefix パラメータは、すべてのローカルディストリビュータおよびリモートエージェントに必要です。「Advanced Parameters」フィールド内のパラメータの構文は次のとおりです。
cprefix=/N1SPS5.1-Home/application |
N1SPS5.1–Home には、アプリケーションのホームディレクトリを指定します。application には、agent (リモートエージェントを構成している場合) または ld (ローカルディストリビュータを構成している場合) と指定します。
N1 Service Provisioning System 5.1 が /opt/SUNWn1sps/ にインストールされていて、リモートエージェントの構成を行う場合には、「Advanced Parameters」フィールドに次のテキストを追加します。
cprefix=/opt/SUNWn1sps/N1_Service_Provisioning_System/agent |
ターゲットサーバー上の PATH に SSH 実行可能ファイルのパスをまだ追加しておらず、追加を望まない場合は、このパラメータを使用して SSH 実行可能ファイルのパスを指定できます。「Advanced Parameters」フィールド内のパラメータの構文は次のとおりです。
sshpath=/path-to-SSH |
path-to-SSH には、SSH 実行可能ファイルがインストールされているディレクトリを指定します。
SSH 実行可能ファイルが /usr/local/bin/ssh ディレクトリにインストールされている場合は、「Advanced Parameters」フィールドには次のテキストを追加します。
sshpath=/usr/local/bin/ssh |
特定のホストで ssh コマンドを実行するときにその ssh コマンドにコマンド行引数を追加する場合は、そのホストの「Advanced Parameters」フィールドに引数を指定できます。「Advanced Parameters」フィールド内のパラメータの構文は次のとおりです。
sshargs=-option|-option |
option には、ssh コマンドに提供するコマンド行オプションを指定します。複数のオプションを追加する場合は、それらを | で区切ってください。
ssh コマンドによって認証エージェントの転送機能を有効にする場合は、「Advanced Parameters」フィールドに -A オプションを指定します。
sshargs=-o|BatchMode yes|-A |
この節では、この章の操作説明で挙げられている 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 コマンドでは、次のオプションを使用できます。
認証エージェントの転送機能を有効にします。
パスフレーズクエリーを無効にします。
コマンドが発行されている場合も tty を割り当てます。
ssh-keygen コマンドでは、次のオプションを使用できます。
生成する鍵のタイプとして RSA を指定します。
ssh-agent コマンドでは、次のオプションを使用できます。
環境変数 SSH_AGENT_PID 内の pid セットを使用してエージェントを強制終了します。ほかの実装では、異なる環境変数を使用する可能性があります。