例: UNIX SFTP サーバーで秘密鍵の資格情報を使用するようにプロトコル・ブリッジ・エージェントを構成する方法
この例では、 ProtocolBridgeCredentials.xml ファイルを生成して構成する方法を示します。 この例は標準的な例であり、ご使用のプラットフォームに応じて詳細が異なることがありますが、原則は同じです。
本タスクについて
手順
- 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 PEMid_rsa秘密鍵の内容には、以下の最初と最後の行が含まれます。
これは、プロトコル・ブリッジ・エージェントと互換性があります。-----BEGIN RSA PRIVATE KEY----- ... ... ... -----END RSA PRIVATE KEY----- -
id_rsa.pubファイルの内容全体を SFTP サーバー上の SFTP ユーザーの ~/.ssh/authorized_keys ファイルにコピーします。SFTP サーバーが鍵認証を許可するように、このファイルおよび ~/.ssh ディレクトリーのファイル許可が適切に設定されていることを確認してください。 通常、これらの権限は以下のとおりです~/.ssh Mode 700 ~/.ssh/authorized_keys Mode 600 - 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を抽出します。
- Red Hat® Enterprise Linux バージョン 6.x 以前、および Linux Ubuntu 14.04の場合は、以下のコマンドを実行します。
- プロトコル・ブリッジ・エージェント・システムで、 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> エレメントを複製することによって、鍵を追加できます。
- プロトコル・ブリッジ・エージェントがまだ開始していない場合は、開始します。 あるいは、プロトコル・ブリッジ・エージェントが定期的に ProtocolBridgeCredentials.xml ファイルをポーリングして、変更を取得します。