328.5. 인증
SSH 구성 요소는 공개 키 인증서 또는 사용자 이름/암호의 두 가지 메커니즘 중 하나를 사용하여 원격 SSH 서버에 대해 인증할 수 있습니다. SSH 구성 요소가 인증을 수행하는 방법을 구성하는 것은 설정 방법과 옵션을 기반으로 합니다.
-
먼저
certResource
옵션이 설정되었는지 확인하고 필요한 경우 이를 사용하여 참조된 공개 키 인증서를 찾아 인증에 사용합니다. -
certResource
가 설정되지 않은 경우keyPairProvider
가 설정되었는지 확인하고, 이 경우 인증서 기반 인증에 이 값을 사용합니다. -
certResource
및keyPairProvider
가 설정되지 않은 경우 인증에사용자 이름과
암호
옵션을 사용합니다.사용자 이름과
암호
가SshConstants.USERNAME_HEADER
(CamelSshUsername
) 및SshConstants.PASSWORD_HEADER
(CamelSshPassword
)로 설정된 끝점 구성 및 헤더에 설정된 헤더가 사용되지만 엔드포인트 구성이 초과되고 헤더에 설정된 인증 정보가 사용됩니다.
다음 경로 조각은 classpath의 인증서를 사용하여 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-jdk18on</artifactId> <version>1.72</version> </dependency> <dependency> <groupId>org.bouncycastle</groupId> <artifactId>bcpkix-jdk18on</artifactId> <version>1.72</version> </dependency>