第167章 SSH


SSH

Camel 2.10 以降で利用可能
SSH コンポーネントを使用すると、SSH コマンドを送信して応答を処理できるように SSH サーバーにアクセスできます。
Maven ユーザーは、このコンポーネントの pom.xml に以下の依存関係を追加する必要があります。
<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-ssh</artifactId>
    <version>x.x.x</version>
    <!-- use the same version as your Camel core version -->
</dependency>
Copy to Clipboard Toggle word wrap

URI 形式

ssh:[username[:password]@]host[:port][?options]
Copy to Clipboard Toggle word wrap

オプション

Expand
名前 デフォルト値 説明
host SSH サーバーのホスト名
port 22 SSH サーバーのポート
username SSH サーバーでの認証に使用されるユーザー名。
password SSH サーバーによる認証に使用されるパスワード。keyPairProvider が null の場合に使用されます。
keyPairProvider 認証用のキーの読み込みに使用する org.apache.sshd.common.KeyPairProvider を参照します。このオプションを使用する場合は、パスワード は使用されません。
keyType ssh-rsa keyPairProvider からロードするキータイプを参照します。キータイプは、たとえば ssh-rsa または ssh-dss です。
certResource null Camel 2.11: 公開鍵証明書へのパス参照。クラスパスで接頭辞 path:file:、または http: を付けます。
certFilename null @非推奨: 代わりに certResource を使用してください。ファイルベースの keyPairProvider 内で使用するファイル名を参照します。
timeout 30000 SSH サーバーへの接続がタイムアウトするまで待機する時間(ミリ秒単位)。

コンシューマーのみのオプション

Expand
名前 デフォルト値 説明
initialDelay 1000 SSH サーバーが起動するポーリングをポーリングするまでの時間(ミリ秒単位)。
delay 500 SSH サーバーの次のポーリングまでの時間(ミリ秒単位)。
useFixedDelay true 固定遅延または固定レートを使用するかどうかを制御します。詳細は、JDK の ScheduledExecutorService を参照してください。
pollCommand null 各ポーリングサイクル中に SSH サーバーに送信するコマンド。コマンドを改行で終了する必要があり、URL でエンコードされた %0A である必要があります。

プロデューサーエンドポイントとしての使用

SSH コンポーネントがプロデューサー(.to ("ssh://...")として使用される場合)は、メッセージボディーをリモート SSH サーバーで実行するコマンドとして送信します。
以下は、XML DSL 内の例になります。コマンドには、XML でエンコードされた改行(&10;)があることに注意してください。
<route id="camel-example-ssh-producer">
  <from uri="direct:exampleSshProducer"/>
  <setBody>
    <constant>features:list&#10;</constant>
  </setBody>
  <to uri="ssh://karaf:karaf@localhost:8101"/>
  <log message="${body}"/>
</route>
Copy to Clipboard Toggle word wrap

認証

SSH コンポーネントは、公開鍵証明書またはユーザー名/パスワードの 2 つのメカニズムを使用して、リモート SSH サーバーに対して認証できます。SSH コンポーネントがどのように認証を行うかの設定は、どのオプションがどのように設定されているかに基づいています。
  1. まず、certResource オプションが設定されているかどうかを確認し、そのオプションを使用している場合は、これを使用して参照される公開鍵証明書を見つけ、それを認証に使用することができます。
  2. certResource が設定されていない場合、keyPairProvider が設定されているかどうかを確認し、設定されている場合は、そのものを証明書ベースの認証に使用します。
  3. certResourcekeyPairProvider も設定されていない場合は、認証に username オプションおよび password オプションが使用されます。
以下のルートのフラグメントは、クラスパスからの証明書を使用して SSH ポーリングコンシューマーを示しています。
XML DSL では、以下のようになります。
<route>
  <from uri="ssh://scott@localhost:8101?certResource=classpath:test_rsa&seFixedDelay=true&elay=5000&ollCommand=features:list%0A"/>
  <log message="${body}"/>
</route>
Copy to Clipboard Toggle word wrap
Java DSL では、以下のようになります。
from("ssh://scott@localhost:8101?certResource=classpath:test_rsa&useFixedDelay=true&delay=5000&pollCommand=features:list%0A")
    .log("${body}");
Copy to Clipboard Toggle word wrap
公開鍵認証の使用例は、examples/camel-example-ssh-security にあります。

証明書の依存関係

証明書ベースの認証を使用する場合は、追加のランタイム依存関係を追加する必要があります。表示されている依存関係バージョンは Camel 2.11 で、使用している Camel のバージョンに応じて、より新しいバージョンを使用する必要がある場合があります。
<dependency>
  <groupId>org.apache.sshd</groupId>
  <artifactId>sshd-core</artifactId>
  <version>0.8.0</version>
</dependency>
<dependency>
  <groupId>org.bouncycastle</groupId>
  <artifactId>bcpg-jdk15on</artifactId>
  <version>1.47</version>
</dependency>
<dependency>
  <groupId>org.bouncycastle</groupId>
  <artifactId>bcpkix-jdk15on</artifactId>
  <version>1.47</version>
</dependency>
Copy to Clipboard Toggle word wrap

Camel ディストリビューションの examples/camel-example-ssh および examples/camel-example-ssh-security を参照してください。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat