143.8. 認証
SSH コンポーネントは、次の 2 つのメカニズムのいずれかを使用して、リモート SSH サーバーに対して認証できます。
- 公開鍵の証明書
- ユーザー名/パスワード
SSH コンポーネントが認証を行う方法の設定は、どのオプションがどのように設定されているかに基づいています。
-
最初に、
certResourceオプションが設定されているかどうかを確認し、設定されている場合は、それを使用して参照されている公開鍵証明書を見つけ、それを認証に使用します。 -
certResourceが設定されていない場合は、keyPairProviderが設定されているかどうかを確認し、設定されている場合はそれを証明書ベースの認証に使用します。 -
certResourceもkeyPairProviderも設定されていない場合、認証にはusernameとpasswordのオプションが使用されます。usernameとpasswordがエンドポイント設定で提供され、ヘッダーが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 で提供されています。