328.5. 인증

SSH 구성 요소는 공개 키 인증서 또는 사용자 이름/암호 중 하나를 사용하여 원격 SSH 서버에 인증할 수 있습니다. SSH 구성 요소 인증 방법을 구성하는 방법은 및 옵션을 설정하는 방법을 기반으로 합니다.

  1. 먼저 certResource 옵션이 설정되어 있는지 확인하고 이 옵션을 사용하여 참조된 공개 키 인증서를 찾아 해당 인증서를 인증에 사용합니다.
  2. certResource 가 설정되지 않은 경우 keyPairProvider 가 설정되어 있는지 확인하는 것으로 확인되며, 이 경우 인증서 기반 인증에 이를 사용합니다.
  3. certResourcekeyPairProvider 가 설정되지 않은 경우 인증에 사용자 이름암호 옵션을 사용합니다. 사용자 이름암호SshConstants.USERNAME_HEADER (CamelSshUsername) 및 SshConstants.PASSWORD_HEADER (CamelSshPassword)로 설정된 엔드포인트 구성 및 헤더에 제공되는 경우에도 엔드포인트 구성은 정체적으로 사용되며 헤더에 설정된 인증 정보가 사용됩니다.

다음 경로 조각은 classpath의 인증서를 사용하는 SSH 폴링 소비자를 보여줍니다.

XML DSL에서

<route>
  <from uri="ssh://scott@localhost:8101?certResource=classpath:test_rsa&amp;useFixedDelay=true&amp;delay=5000&amp;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>