2017-03-28 5 views
0

나는 Karaf가 매번 시작할 때마다 새로운 SSH 키를 생성하고 있음을 확인했습니다. 매번 새 키를 수동으로 받아 들여야하기 때문에 ssh를 통해 자동 스크립트를 쓸모 없게 만듭니다.시작시 Karaf이 새로운 SSH 키를 생성하는 것을 중지하십시오.

새로운 동작을 중지하고 새 키를 생성 할 수 있습니까?

추가 디버그 정보 : 'etc/host.key'가 변경되지 않았다는 것을 알았습니다. 그러나, 중지 및 karaf를 시작한 후 나는 메시지가 :

ssh -p 8101 localhost -oHostKeyAlgorithms=+ssh-dss

Offending DSA key in ~/.ssh/known_hosts:5 
    remove with: 
    ssh-keygen -f "~/.ssh/known_hosts" -R [localhost]:8101 
DSA host key for [localhost]:8101 has changed and you have requested strict checking. 
Host key verification failed. 

DSA 키가 아니라 karaf.log에서 로그 메시지를 일치하지 않는 발생 사실 :

INFO | sshd-SshServer[20056f77]-nio2-thread-2 | SimpleGeneratorHostKeyProvider | 48 - org.apache.sshd.core - 1.2.0 | generateKeyPair(RSA) generating host key - size=4096

etc/org.apache.karaf.shell.cfg :

sshPort=8101 
sshHost=0.0.0.0 
sshRealm=karaf 
hostKey=${karaf.etc}/host.key 
algorithm=RSA 
keySize=4096 

로그에 파고 후 내가 발견 한 그 host.key 파일이로드되지 않은 페이지 roperly : 아파치 SSHD 읽기

2017-03-29T13:44:58,977 | WARN | sshd-SshServer[18c17f90]-nio2-thread-1 | SimpleGeneratorHostKeyProvider | 48 - org.apache.sshd.core - 1.2.0 | resolveKeyPair(~/karaf-docker/apache-karaf-4.1.0/etc/host.key) Failed (InvalidKeySpecException) to load: Missing classes: org.bouncycastle.jcajce.provider.asymmetric.rsa.BCRSAPrivateCrtKey 2017-03-29T13:45:00,340 | ERROR | sshd-SshServer[18c17f90]-nio2-thread-1 | SimpleGeneratorHostKeyProvider | 48 - org.apache.sshd.core - 1.2.0 | Overwriting key (~/karaf-docker/apache-karaf-4.1.0/etc/host.key) is disabled: using throwaway ssh-dss: SHA256:3yWwxdzoymMvEBYIWMIguQ8G3J7kfapd+avCMoue2R4 2017-03-29T13:45:00,342 | WARN | sshd-SshServer[18c17f90]-nio2-thread-1 | ServerSessionImpl

는 /은 OSGi에 문제가 발생할 (그리고 아마도 더 나쁜, 쓸모없는 파일을 켤 수있는 기능의 재배치) 할 수있는 자바 직렬화를 사용 host.key를 기록합니다.

+0

키는 설치 당 한 번만 만들어야합니다. 특별한 환경이 있습니까? –

+0

@ChristianSchneider Oracle Java 1을 사용하여 우분투 x86_64에서 버전 4.1.0을 사용하고 있습니다.8 –

+0

그냥 ssh -p 8101 karaf @ localhost로 연결을 시도 할 수 있습니까? .. 이상하게도 당신의 명령으로 시도했지만 여전히 내 열쇠가 올바르게 만들어졌습니다. –

답변

0

나는 내 자신의 질문에 대답하기로 결정했습니다 내가 karaf 구현 등에 대한 토론에 참여 필요로하지 않는 솔루션을 발견했기 때문에

  1. 키를 사용에서 : Karaf 모듈 org.apache.karaf.shell.ssh 중 하나를 지속하거나 host.key에서 생성 키를 읽고, 나는 그것이 단지 아래의 시나리오에 대해 테스트 한 가정 없기 때문에

    문제의 원인이었다 라인을 추가하여 PEM 형식은

    hostKeyFormat=PEM

    etc/org.apache.karaf.shell.cfg

  2. openssl 도구를 사용하여 키를 생성 파일로 :의 Karaf가있는 OpenSSL에 의해 생성 된 키를 사용합니다 시작한 후

    openssl genrsa -out etc/host.key 4096

을하고, 자체 생성하려고 시도하지 마십시오. 카라프 테스트 4.12

0

Karaf는 처음 ssh를 사용하여 연결할 때 서버 키를 만듭니다. 그런 다음 karaf 홈에 키를 놓습니다. etc/host.key. 따라서 키는 각 karaf 서버마다 한 번만 만들어야합니다.

작성의 오버 헤드를 피하기 위해 자체 키를 제공 할 수도 있습니다.

키는 org.apache.sshd.server.keyprovider.SimpleGeneratorHostKeyProvider에 의해 생성됩니다. 이 키를 생성 할 때 당신은 로그에이 메시지가 표시되어야합니다 :

generateKeyPair(RSA) generating host key - size=4096 
+0

그래서이 키를 덮어 쓰지 않아야합니까? 그렇다면 시스템의 어느 부분이 해당 부분입니까? 필요한 특정 로그 메시지가 있습니까? –

+0

예. 키는 한 번만 만들어야합니다. 대답에 대한 정보를 추가했습니다. –

+0

내 질문을 편집했습니다. host.key가 무시되고 시작시 SSH 키가 생성되는 것 같습니다 ... –