第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 を参照してください。