Fuse 6 is no longer supported
As of February 2025, Red Hat Fuse 6 is no longer supported. If you are using Fuse 6, please upgrade to Red Hat build of Apache Camel.第167章 SSH
SSH リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Camel 2.10 以降で利用可能
SSH コンポーネントを使用すると、SSH コマンドを送信して応答を処理できるように SSH サーバーにアクセスできます。
Maven ユーザーは、このコンポーネントの
pom.xml
に以下の依存関係を追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
ssh:[username[:password]@]host[:port][?options]
ssh:[username[:password]@]host[:port][?options]
オプション リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
名前 | デフォルト値 | 説明 |
---|---|---|
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 サーバーへの接続がタイムアウトするまで待機する時間(ミリ秒単位)。 |
コンシューマーのみのオプション リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
名前 | デフォルト値 | 説明 |
---|---|---|
initialDelay
|
1000
|
SSH サーバーが起動するポーリングをポーリングするまでの時間(ミリ秒単位)。 |
delay
|
500
|
SSH サーバーの次のポーリングまでの時間(ミリ秒単位)。 |
useFixedDelay
|
true
|
固定遅延または固定レートを使用するかどうかを制御します。詳細は、JDK の ScheduledExecutorService を参照してください。
|
pollCommand
|
null
|
各ポーリングサイクル中に SSH サーバーに送信するコマンド。コマンドを改行で終了する必要があり、URL でエンコードされた %0A である必要があります。
|
プロデューサーエンドポイントとしての使用 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
SSH コンポーネントがプロデューサー(
.to ("ssh://...")として使用される場合)
は、メッセージボディーをリモート SSH サーバーで実行するコマンドとして送信します。
以下は、XML DSL 内の例になります。コマンドには、XML でエンコードされた改行(
&10
;)があることに注意してください。
認証 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
SSH コンポーネントは、公開鍵証明書またはユーザー名/パスワードの 2 つのメカニズムを使用して、リモート SSH サーバーに対して認証できます。SSH コンポーネントがどのように認証を行うかの設定は、どのオプションがどのように設定されているかに基づいています。
- まず、
certResource
オプションが設定されているかどうかを確認し、そのオプションを使用している場合は、これを使用して参照される公開鍵証明書を見つけ、それを認証に使用することができます。 certResource
が設定されていない場合、keyPairProvider
が設定されているかどうかを確認し、設定されている場合は、そのものを証明書ベースの認証に使用します。certResource
もkeyPairProvider
も設定されていない場合は、認証に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>
<route>
<from uri="ssh://scott@localhost:8101?certResource=classpath:test_rsa&seFixedDelay=true&elay=5000&ollCommand=features:list%0A"/>
<log message="${body}"/>
</route>
Java DSL では、以下のようになります。
from("ssh://scott@localhost:8101?certResource=classpath:test_rsa&useFixedDelay=true&delay=5000&pollCommand=features:list%0A") .log("${body}");
from("ssh://scott@localhost:8101?certResource=classpath:test_rsa&useFixedDelay=true&delay=5000&pollCommand=features:list%0A")
.log("${body}");
公開鍵認証の使用例は、
examples/camel-example-ssh-security
にあります。
証明書の依存関係 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
証明書ベースの認証を使用する場合は、追加のランタイム依存関係を追加する必要があります。表示されている依存関係バージョンは Camel 2.11 で、使用している Camel のバージョンに応じて、より新しいバージョンを使用する必要がある場合があります。
例 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Camel ディストリビューションの
examples/camel-example-ssh
および examples/camel-example-ssh-security
を参照してください。