ヘッダーをスキップ
Oracle Enterprise Manager Grid Controlアドバンスト・インストレーションおよび構成ガイド
11gリリース1(11.1.0.1.0)
B61023-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

D SSH接続の設定

この付録では、Microsoft WindowsプラットフォームにOracle Management Agent(管理エージェント)をインストールする前に、SSH接続を設定する方法について説明します。特に、次の内容について説明します。

概要

SSH(セキュア・シェル)設定により、Oracle Management Service(OMS)を実行しているホストと、管理エージェントをインストールする必要のあるホストの間に接続性を確立します。この設定は、主に、「エージェント・デプロイ」アプリケーションがHTTPを介してリモート・ホストに管理エージェントをインストールする場合に必要です。

「エージェント・デプロイ」アプリケーションは、Enterprise Manager Grid Controlコンソールを構成するアプリケーションの1つです。このアプリケーションは、対話型のユーザー・インタフェースを使用して環境に管理エージェントをデプロイする場合に使用します。ソース・ホストからリモート・ターゲット・ホストへの管理エージェントのインストールは、SSHを使用して行われます。SSHを介した通信が機能するには、2つのホスト間にSSHを設定する必要があります。またこの設定により、将来のエージェント・デプロイ操作中に発生するSSH認証コールを回避することもできます。


注意:

SSHの設定は、宛先ホストと宛先ホストの間にではなく、常に宛先ホストとOMSとの間に設定する必要があります。

Enterprise Manager 11g Grid Controlリリース1(11.1.0.1.0)では、「エージェント・デプロイ」アプリケーションによってSSH接続の設定と削除が自動的に行われます。ただし、管理エージェントをMicrosoft Windowsオペレーティング・システムにインストールする場合は、そのホストに手動でCygwinをインストールして構成する必要があります。


注意:

Cygwin 1.5では、エージェント・デプロイ・ウィザードの動作が保証され、サポートされています。

Microsoft WindowsでのSSHサーバー(SSHD)の設定

SSHD設定を開始する前に、「エージェント・デプロイ」アプリケーションの使用時にOpenSSHおよびMKSNTが使用されないかどうかを確認します。「エージェント・デプロイ」アプリケーションでは、完全なCygwinスイート(Cygwinにパッケージされているソフトウェア・ツールの完全コレクション)が使用されます。Cygwinの完全コレクションを入手するには、次のようにします。


注意:

Cygwin 1.5では、エージェント・デプロイ・ウィザードの動作が保証され、サポートされています。

  1. OpenSSH\binおよびmksnt%PATH%内に含まれていないことを確認します。これらが含まれている場合は、次のようにして削除します。

    1. 「マイ コンピュータ」を右クリックし、「プロパティ」を選択します。

    2. 表示される「システムのプロパティ」ウィンドウで、「詳細設定」をクリックします。

    3. このタブで、「環境変数」をクリックします。

    4. ここで、Pathシステム変数を検索して選択します。OpenSSH\binおよびmksntがPATHに含まれている場合は、「編集」をクリックします。

    5. 表示される「システム変数の編集」ダイアログ・ボックスで、この2つの値をPATHから削除し、「OK」をクリックします。

  2. OpenSSHからSSHデーモンが実行されている場合は、SSHデーモンを停止します。手順は次のとおりです。

    1. 「マイ コンピュータ」を右クリックし、「管理」を選択します。

    2. 表示される「コンピュータの管理」ウィンドウで、「サービスとアプリケーション」の下の「サービス」を選択します。

    3. 右側のペインで、SSHデーモン・サービスを選択し、「サービスの停止」アイコンをクリックします。


      注意:

      必ず、OpenSSHおよびMKSNTのインストール・ディレクトリの名前を変更してください。

  3. Cygwinソフトウェアの完全スイートをインストールするには、http://www.cygwin.comに移動し、CygwinをC:\cygwinディレクトリにインストールします。


    注意:

    前述のディレクトリとは別のディレクトリにCygwinをインストールする場合は必ず、Oracle Enterprise Manager Grid Controlのインストール後に、Cygwinのバイナリの適切な値を使用して$OMS_INSTANCE_HOME/sysman/prov/resources/ssPaths_msplats.propertiesファイルを更新してください。


    注意:

    Cygwinをリモート・マシン上でC:\cygwin以外のディレクトリにインストールする場合は、CygwinがOMSマシン上のまったく同じ場所にインストールされていることも確認する必要があります。

    Cygwinインストール・ディレクトリにスペースを含めることはできません。


    Cygwinのインストール時には、次のバイナリを選択してください。

    1. Archiveパッケージのzipおよびunzipバイナリ

      図D-1 zipおよびunzipバイナリ

      zipおよびunzipバイナリ
    2. NetパッケージのOpenSSHとその関係コンポーネント(OpenSSHの選択時に自動的に選択)。

      図D-2 Netパッケージ

      Netパッケージ
  4. C:\cygwin\cygwin.batファイルを変更して、次の行を追加します。

    set CYGWIN=binmode tty ntsec
    
  5. C:\cygwin\binに移動して次のコマンドを実行し、cygrunsrvがインストールされていることを確認します。

    bash
    cygrunsrv -h
    

    注意:

    Cygwinの値を入力するように要求されたら、binmode tty ntsecと入力します。これにより、「service does not exist」というエラー・メッセージが返されても、処理に問題はないので、次の手順に進んでかまいません。

  6. 新しいコマンド・プロンプトを開き、次のコマンドを実行します。

    bashssh-host-config
    

    注意:

    sshdユーザー・アカウントを作成するように要求されたら、noと入力します(「sshd user account needs to be created」というメッセージが表示されます)。

    その他のプロンプトにはすべてyesと入力します。

    「Which value should the environment variable CYGWIN have when sshd starts?」という質問に回答するように要求された場合は、次の例に示すように、値に最低でもntsecを設定することをお薦めします。これにより、パスワードを指定しなくてもユーザー・コンテキストを変更できるようになります。

    前述の質問に対する回答として、次のような値を指定し、[Enter]を押します。

    CYGWIN="binmode tty ntsec"
    

  7. /etc/passwdファイルを開き、OMSマシンへの接続に使用するユーザーのエントリのみを削除します。

    次に例を示します。

    • OMSへの接続に使用するユーザーがローカル・ユーザーである場合、次のコマンドを実行します。

      /bin/mkpasswd -l –u <USER> >> /etc/passwd
      
    • OMSへの接続に使用するユーザーがドメイン・ユーザーである場合、次のコマンドを実行します。

      /bin/mkpaswd.exe -d -u <USER> >> /etc/passwd
      /bin/mkgroup.exe -d >> /etc/group
      
      
      mkdir -p /home/<USER>  (for example, mkdir -p /home/pjohn)
      chown <USER> /home/<USER> (for example, chown pjohn /home/pjohn)
      
  8. SSHデーモンを起動します。

    OMSへの接続に使用するユーザーがドメイン・ユーザーである場合、次のコマンドを実行します。

    1. 「マイ コンピュータ」を右クリックし、「管理」を選択します。

    2. 表示される「コンピュータの管理」ダイアログ・ボックスで、「サービスとアプリケーション」に移動し、「CYGWIN sshd」を選択します。

    3. 「CYGWIN sshd」を右クリックし、「プロパティ」を選択します。

    4. 「プロパティ」ダイアログ・ボックスで、「ログオン」タブに移動します。

    5. このタブで、ドメイン/ユーザー名およびパスワードを指定します。「適用」をクリックします。

    6. CYGWINコマンド・プロンプトに移動し、次のコマンドを実行します。

      chmod 644 /etc/ssh*
                 chmod <USERNAME> /var/empty
         chmod 755 /var/empty   chmod 644 /var/log/sshd.log
      

      注意:

      /var/log/sshd.logが存在しない場合は、次のコマンドを実行する必要はありません。
      chmod 644 /var/log/sshd.log
      

    7. 次のコマンドを実行して、SSHデーモンを起動します。

      /usr/sbin/sshd
      

      あるいは、同じBASHプロンプトから、次のコマンドを実行することもできます。

      cygrunsrv -S sshd
      

      注意:

      SSHデーモンを停止するには、cygrunsrv -E sshdを使用します。

  9. これで、cygwin設定をテストできます。

    これを行うには、(sshクライアントが実行されている)別のマシンに移動し、次のコマンドを実行します。

    ssh -l <USERNAME> <localhost> 'date'
    
    OR
    
    ssh -l <USERNAME> <this node> 'date'
    

    次に例を示します。

    ssh -l pjohn egal07.db.funds.com 'date'
    

    このコマンドでは、パスワードを指定するように要求されます。正しいパスワードを指定すると、正確な日付が返されます。

sshUserSetupNT.shを使用したMicrosoft WindowsでのSSHの設定


注意:

sshUserSetupNT.shスクリプトを実行する前に、次のコマンドを実行して、ホーム・ディレクトリが正しく設定されていることを確認します。
  1. echo $HOMEを実行します。

    これにより、現在のユーザーのホーム・ディレクトリが表示されることを確認します。

  2. 別のユーザーのホーム・ディレクトリを指し示している場合は、次のコマンドを実行します。

    export HOME=<Windows style absolute path of homedir>
    
  3. echo $HOMEを再実行して、ホーム・ディレクトリを確認します。$HOMEの値は、-homeDirに渡される値と同じである必要があります。


これは、Microsoft WindowsプラットフォームでSSHを設定するために実行する必要のあるスクリプトです。このスクリプトの使用方法は次のとおりです。

./sshUserSetupNT.sh -user -asUser -asUserGrp -sshLocalDir -homeDir -hosts -hostfile 

注意:

SSHUserSetupNT.shスクリプトの実行後、すべてのホストでSSHユーザー設定が正常に完了していることを個別に確認する必要があります。

つまり、2つのホスト(host1およびhost2)でSSHを設定するためのスクリプトを実行した場合は、各ホストで次のコマンドを実行して、SSH設定が正常に完了していることを確認する必要があります。

ssh -l <username> host1 'date'

and then run:

ssh -l <username> host2 'date'


注意:

ローカルOMSマシン上でのsshUserSetupNT.shスクリプトの実行は、cygwin(BASH)シェル内のみから行う必要があります。この場所以外から実行すると、スクリプトの実行は失敗します。

前述のオプションはすべて必須であり、スクリプトの実行時に渡す必要があります。


注意:

C:\cygwinがCygwinバイナリのデフォルトのインストール・ディレクトリであることが前提となっています。

cygwinc:\cygwin(デフォルトの場所)以外の場所にインストールすると、SSH設定が失敗し、その結果、エージェントのインストールも失敗する可能性があります。

この問題を回避するには、cygwinをデフォルトのディレクトリ(c:\cygwin)にインストールするか、cygwinバイナリへの正しいパスを使用してssPaths_msplats.propertiesファイルを更新する必要があります。ssPaths_msplats.propertiesは、<OMS_INSTANCE_HOME>/sysman/prov/resources/内にあります。

次のリモート・レジストリ・キーを調べると、Cygwinの正しいパスを確認できます。

HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2\/

説明

このスクリプトは、Microsoft Windowsプラットフォーム上で、実行されるホストから指定するリモート・ホストへのSSHを設定するために使用されます。このスクリプトの実行後は、SSHを使用して、リモート・ホスト上でコマンドを実行したり、ローカル・ホストとリモート・ホストの間でファイルをコピーしたりできます。パスワードの入力や確認を要求されることはありません。

リモート・ホストとそのユーザー名のリストは、コマンドライン・パラメータとしてスクリプトに指定します。


注意:

$HOMEの値にスペースが使用されている場合(例: /cygdrive/c/Documents and Settings/pjohn)、Microsoft Windowsスタイルで二重引用符で囲んで$HOMEの値を指定してください(例: "C:\ Documents and Settings\pjohn")。


注意:

フルパスは二重引用符(" ")で囲んで指定してください。


注意:

ローカルOMSマシン上でのsshUserSetupNT.shスクリプトの実行は、cygwin(BASH)シェル内のみから行う必要があります。この場所以外から実行すると、スクリプトの実行は失敗します。

リモート・ホストでのタイムゾーン変数の設定

この項では、リモート・ホストでタイムゾーン変数を設定するために必要な手順を示します。

タイムゾーン環境変数(TZ)がリモート・ホスト上のSSHサーバーからアクセス可能かどうかを確認するには、OMSホストから次のコマンドを実行します。

ssh -l <user_name> -n <remote_node> 'echo $TZ'

このコマンドでTZ環境変数の値が返されない場合は、TZ変数を設定し、SSHサーバーから必ずアクセスできるようにする必要があります。リモート・ホスト上でTZ環境変数を設定するには、次の各項の方法があります。

TZ変数の設定およびSSHデーモンの再起動

使用されているシェルがBASHの場合、sshアクセス用に次の行を(使用されている)ユーザーのホーム・ディレクトリにある.bashrcファイルに追加します。

export TZ=<your machine's timezone>

CSHシェルを使用している場合は、次の行をそのディレクトリ内の.cshrcファイルに追加します。

setenv TZ <your machine's timezone>
  1. ホストに存在するシェルに応じて、次のコマンドを実行して、TZ変数を設定します。

    For a CSH Shell, specify:
    setenv TZ PST8PDT
    
  2. 次のコマンドを実行して、SSHデーモンを再起動します。

    sudo /etc/init.d/sshd restart
    
  3. 次のコマンドをOMSホームから実行して、SSHサーバーからTZ変数にアクセスできるかどうかを確認します。

    ssh -l <user_name> -n <node_name> 'echo $TZ'
    

シェルのrcファイルでのTZ変数の設定

タイムゾーン変数は、ホストで使用されているシェルのrcファイル内に設定する必要があります。

たとえば、ホストがBASHシェルを使用している場合、ユーザーのホーム・ディレクトリ($HOME)に移動し、次の行を~/.bashrcファイルに追加してTZ変数を設定します。

TZ=PST8PDT; export TZ

ホストがCSHシェルを使用している場合は、$HOMEに移動し、次の行を~/.cshrcファイルに追加します。

setenv TZ PST8PDT

次のコマンドをOMSホームから実行して、SSHサーバーからTZ変数にアクセスできるかどうかを確認します。

ssh -l <user_name> -n <node_name> 'echo $TZ'