ヘッダーをスキップ
Oracle® Enterprise Manager Grid Control基本インストレーション・ガイド
11gリリース1(11.1.0.1.0)
B61019-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

D SSH接続の設定

この付録では、Microsoft Windowsオペレーティング・システムにOracle Management Agent(管理エージェント)をインストールする前にSSH接続を設定する方法について説明します。特に、次の内容について説明します。

概要

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

エージェント・デプロイ・ウィザードは、Enterprise Manager Grid Controlコンソールの一部を構成するアプリケーションです。このアプリケーションは、対話型のユーザー・インタフェースを使用して環境に管理エージェントをデプロイする場合に使用します。ソース・ホストからリモート宛先ホストへの管理エージェントのインストールは、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. SSHデーモンがOpenSSHから起動されている場合、これを停止します。この手順は、次のとおりです。

    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ファイルを更新してください。


    注意:

    リモート・マシン上でC:\cygwin以外のディレクトリに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と入力します。これによって「サービスは存在しません。」というエラー・メッセージが表示されても、処理に問題はなく、次の手順に進んでかまいません。

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

    bashssh-host-config
    

    注意:

    sshdユーザー・アカウントを作成するよう求められた場合、noと入力します(「sshdユーザー・アカウントを作成する必要があります。」というメッセージが表示されます)。

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

    「sshdの起動時に環境変数CYGWINにどのような値を使用しますか。」という質問に回答するよう求められた場合、次の例のように、値に最低でも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. 「CYGWIN sshdのプロパティ」ダイアログ・ボックスで、「ログオン」タブに移動します。

    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/内にあります。


説明

このスクリプトは、Microsoft Windowsオペレーティング・システムで、実行されるホストから指定するリモート・ホストへのSSHを設定するために使用されます。このスクリプトが実行された後は、パスワードあるいは確認が求められることなく、SSHを使用してリモート・ホスト上でコマンドを実行、またはローカル・ホストとリモート・ホスト間でファイルをコピーできます。

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


注意:

$HOME値にスペースが使用されている場合(例: /cygdrive/c/Documents and Settings/pjohn)、$HOME値は、Microsoft Windowsスタイルで、二重引用符で囲んで指定してください(例: "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'