例: UNIX SFTP サーバーで秘密鍵の資格情報を使用するようにプロトコル・ブリッジ・エージェントを構成する方法

この例では、 ProtocolBridgeCredentials.xml ファイルを生成して構成する方法を示します。 この例は標準的な例であり、ご使用のプラットフォームに応じて詳細が異なることがありますが、原則は同じです。

本タスクについて

手順

  1. SFTP サーバーでの認証に使用する公開鍵と秘密鍵を生成します。
    例えば、 Linux® ホスト・システムでは、'openssh' パッケージの一部として提供されているツール ssh-keygenを使用して、公開鍵と秘密鍵のペアを作成できます。
    デフォルトでは、引数を指定せずに ssh-keygen コマンドを実行すると、2 つの鍵ファイルの場所とパスフレーズの入力を求めるプロンプトが出されます。デフォルトの名前は以下のとおりです。
    
     id_rsa      <-- Private key
     id_rsa.pub  <-- Public key
    注意RHEL 8 などの最近のバージョンのOpenSSH,で 'ssh-keygenコマンドを使用している場合、使用されているキーフォーマットがプロトコルブリッジエージェントと互換性がないため、SFTP サーバーへの転送に失敗し、メッセージが表示されます:
    BFGBR0216E: Authentication to protocol server 'sftp.host.address' failed because of invalid private key.
    これらの新しいバージョンの OpenSSH と互換性のある秘密鍵を作成するには、 ssh-keygen コマンドに以下の引数を使用して鍵フォーマットを指定します。
    ssh-keygen -m PEM
    id_rsa 秘密鍵の内容には、以下の最初と最後の行が含まれます。
    
    -----BEGIN RSA PRIVATE KEY-----
    ... ... ...
    -----END RSA PRIVATE KEY-----
    これは、プロトコル・ブリッジ・エージェントと互換性があります。
  2. id_rsa.pub ファイルの内容全体を SFTP サーバー上の SFTP ユーザーの ~/.ssh/authorized_keys ファイルにコピーします。
    SFTP サーバーが鍵認証を許可するように、このファイルおよび ~/.ssh ディレクトリーのファイル許可が適切に設定されていることを確認してください。 通常、これらの権限は以下のとおりです
    
    ~/.ssh                   Mode 700
    ~/.ssh/authorized_keys   Mode 600
  3. Managed File Transfer では、 MD5 アルゴリズムを使用して生成されたホスト SSH 指紋が必要です。 以下のいずれかのコマンドを実行して、SFTP サーバーのホストの ssh 指紋を取得します。
    • Red Hat® Enterprise Linux バージョン 6.x 以前、および Linux Ubuntu 14.04の場合は、以下のコマンドを実行します。
      ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub
    • Red Hat Enterprise Linux 7.x、 Linux Ubuntu 16.04 および SuSE Linux 12.4以降、ssh-keygen コマンドはデフォルトで SHA256 アルゴリズムを使用して ssh 指紋を生成します。 MD5 アルゴリズムを使用して ssh 指紋を生成するには、以下のコマンドを実行します。
      ssh-keygen -l -E MD5 -f /etc/ssh/ssh_host_rsa_key.pub
      コマンドの出力は、以下の例のようになります。
      2048 MD5:64:39:f5:49:41:10:55:d2:0b:81:42:5c:87:62:9d:27 no comment (RSA)

      出力の 16 進部分のみを抽出して、 ProtocolBridgeCredentials.xml ファイルの hostKey として使用します (ステップ 4を参照)。 したがって、この例では、 64:39:f5:49:41:10:55:d2:0b:81:42:5c:87:62:9d:27 を抽出します。

  4. プロトコル・ブリッジ・エージェント・システムで、 ProtocolBridgeCredentials.xml ファイルを編集します。 以下の例でイタリックで示されている値を独自の値に置換します。
    <tns:credentials xmlns:tns="http://wmqfte.ibm.com/ProtocolBridgeCredentials"
    xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://wmqfte.ibm.com/ProtocolBridgeCredentials 
     ProtocolBridgeCredentials.xsd ">
    
    <tns:agent name="Agent_name">
    
    <tns:server name="SFTP_name">
    
    <tns:user name="mq_User_ID" serverUserId="SFTP_user_ID" 
      hostKey="ssh_host_finger">
    <tns:privateKey associationName="name" keyPassword="pass_phrase">
     Complete contents of the id_rsa file including the entries
     -----BEGIN RSA PRIVATE KEY----- 
    
     -----END RSA PRIVATE KEY----- 
    </tns:privateKey>
    </tns:user>
        
    </tns:server>
    </tns:agent>
    </tns:credentials> 
    ここで、
    • Agent_name は、プロトコル・ブリッジ・エージェントの名前です。
    • SFTP_host_name は、 ProtocolBridgeProperties.xml ファイルに示されているように、 SFTP サーバーの名前です。
    • mq_User_ID は、転送要求に関連付けられた MQMD ユーザー ID です。
    • SFTP_user_ID は、ステップ 2で使用されている SFTP ユーザー ID です。 これは、ログイン・ユーザー IDとして SFTP 機能に渡される値です。
    • ssh_host_finger は、ステップ 3 で収集した指紋です。
    • name は、トレースとロギングを目的として使用するために指定できる名前です。
    • pass_phrase は、ステップ 1 で ssh-keygen に指定したパスフレーズです。
    • id_rsa ファイルの内容を完了します。 は、ステップ 1から生成された id_rsa ファイルの完全な内容です。 接続エラーを回避するには、以下の両方の項目が含まれていることを確認してください。
      -----BEGIN RSA PRIVATE KEY----- 
      
      -----END RSA PRIVATE KEY----- 

    <tns:privatekey> エレメントを複製することによって、鍵を追加できます。

  5. プロトコル・ブリッジ・エージェントがまだ開始していない場合は、開始します。 あるいは、プロトコル・ブリッジ・エージェントが定期的に ProtocolBridgeCredentials.xml ファイルをポーリングして、変更を取得します。