306.4. Authentication
SSH コンポーネントは、公開鍵証明書またはユーザー名/パスワードのいずれかを使用して、リモートの SSH サーバーに対して認証できます。SSH コンポーネントの認証方法は、オプションの設定方法およびオプションを基にしています。
-
まず、
certResource
オプションが設定されているかどうかを確認し、ある場合はこれを使用して参照される公開鍵証明書を特定し、その証明書を認証に使用するようにします。 -
certResource
が設定されていない場合、keyPairProvider
が設定されているかどうかを確認し、その場合は証明書ベースの認証に使用します。 -
certResource
およびkeyPairProvider
が設定されていないと、認証にユーザー名
およびパスワード
オプションが使用されます。ユーザー名
とパスワード
はエンドポイント設定に提供され、SshConstants.USERNAME_HEADER
(CamelSshUsername
)およびSshConstants.PASSWORD_HEADER
(CamelSshPassword
)で設定されたヘッダーで提供されますが、ヘッダーに設定されたエンドポイント設定が使用されます。
以下のルートフラグメントは、クラスパスの証明書を使用した SSH ポーリングコンシューマーを示しています。
XML DSL の場合:
<route> <from uri="ssh://scott@localhost:8101?certResource=classpath:test_rsa&useFixedDelay=true&delay=5000&pollCommand=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}");
公開鍵認証の使用例は、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>