[jenkins] Jenkins 호스트 키 확인 실패

jenkins에 문제가 있는데 “git”을 설정하면 다음 오류가 표시됩니다.

Failed to connect to repository : Command "git ls-remote -h https://person@bitbucket.org/person/projectmarket.git HEAD" returned status code 128:
stdout:
stderr: fatal: Authentication failed

ssh로 테스트했습니다 .

git@bitbucket.org:person/projectmarket.git

이것은 오류입니다 :

Failed to connect to repository : Command "git ls-remote -h git@bitbucket.org:person/projectmarket.git HEAD" returned status code 128:
stdout:
stderr: Host key verification failed.
fatal: The remote end hung up unexpectedly

또한 “SSH 키”를 사용하여이 단계를 수행했습니다.

Jenkins에서 로그인

sudo su jenkins

github 키를 Jenkins .ssh 폴더로 복사하십시오.

cp ~/.ssh/id_rsa_github* /var/lib/jenkins/.ssh/

키 이름 바꾸기

mv id_rsa_github id_rsa
mv id_rsa_github.pub id_rsa.pub

그러나 jenkins 에서는 여전히 git 저장소가 작동하지 않습니다 .

도와 주셔서 감사합니다!.



답변

jenkins사용자로 변경 하고 명령을 수동으로 실행하십시오.

git ls-remote -h git@bitbucket.org:person/projectmarket.git HEAD

SSH를 통해 새 호스트에 처음 연결할 때 표준 SSH 경고가 표시됩니다.

The authenticity of host 'bitbucket.org (207.223.240.181)' can't be established.
RSA key fingerprint is 97:8c:1b:f2:6f:14:6b:5c:3b:ec:aa:46:46:74:7c:40.
Are you sure you want to continue connecting (yes/no)?

입력 yes하고 Enter를 누르십시오. 의 호스트 키 bitbucket.org가 이제 ~/.ssh/known_hosts파일에 추가되며 더 이상 Jenkins에서이 오류가 발생하지 않습니다.


답변

Jenkins는 서비스 계정으로 설계 상 쉘이 없습니다. 일반적으로 해당 서비스 계정이 허용됩니다. 대화식으로 로그인 할 수 없습니다.

“Jenkins 호스트 키 확인 실패”를 해결하려면 다음 단계를 수행하십시오. 젠킨스와 함께 수은을 사용했습니다.

1) 터미널에서 다음 명령을 실행하십시오.

             $ sudo su -s /bin/bash jenkins

비밀번호를 제공하십시오

2) 다음 명령을 사용하여 공개 개인 키를 생성하십시오.

              ssh-keygen

당신은 출력을 볼 수 있습니다 ::

Generating public/private rsa key pair.
Enter file in which to save the key (/var/lib/jenkins/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:

3) Enter를 누르십시오-> 암호를 입력하지 마십시오-> Enter를 누르십시오

             Key has been generated

4)-> cat /var/lib/jenkins/.ssh/id_rsa.pub로 이동하십시오.

5) id_rsa.pub에서 키를 복사

6) bash에서 나가십시오

7) ssh@yourrepository

8) vi .ssh/authorized_keys

9) 키 붙여 넣기

10) 출구

11) 수은 서버에 수동으로 로그인

참고 : Pls는 수동으로 로그인하지 않습니다. 그렇지 않으면 jenkins는 “호스트 확인 실패”오류를 다시 표시합니다.

12) 한 번 수동으로 완료하면 Jenkins로 이동하여 빌드하십시오.

즐겨!!!

행운을 빕니다


답변

또는 다음을 사용할 수 있습니다.

ssh -oStrictHostKeyChecking=no host

이것은 안전하지 않지만 (중간 공격의 사람) 가장 쉬운 솔루션입니다.

더 좋은 방법은 호스트와 IP 주소 사이에 올바른 매핑을 생성하는 것이므로 ssh불평하지 않습니다.

#!/bin/bash

for domain in "github.com" "bitbucket.org"; do
    sed -i "/$domain/d" ~/.ssh/known_hosts
    line=$(ssh-keyscan $domain,`nslookup $domain | awk '/^Address: / { print $2 ; exit }'`)
    echo $line >> ~/.ssh/known_hosts
done

요지 에서 발췌 .


답변

같은 문제가 있었지만 다음과 같이 수정했습니다.

현재 사용자에 대해서만 id_rsa *에 대한 권한 재설정

chmod o-rwx ~/.ssh/id*
chmod G-rwx ~/.ssh/id*

ls -lart ~/.ssh/


-rw-------  1 jenkins nogroup  398 avril  3 09:34 id_rsa.pub
-rw-------  1 jenkins nogroup 1675 avril  3 09:34 id_rsa

~ / .ssh / know_hosts를 지우십시오.

이제 젠킨스로 연결

sudo su jenkins

jenkins 명령을 사용해보십시오

git ls-remote -h git@bitbucket.org:user/project.git HEAD

문제가 나타나지 않으면 이제 jenkins는 repo를 연결할 수 있습니다 (최소한 ^^).


답변

https://bitbucket.org/YYYY/XX.git 사용

당신은 사용자 이름을 삭제해야합니다 @


답변

  • 오류를 건너 뛰기 위해 기본 sshd_config 속성을 편집하지 않아야합니다.

  • 호스트 확인 실패- known_hosts파일 에서 호스트 이름 항목이 누락되었습니다.

  • 프로세스가 실패한 서버에 로그인하고 다음을 수행하십시오.

    1. 프로세스를 실행하는 사용자에게 Sudo

    2. ssh-copy-id destinationuser@destinationhostname

    3. 처음으로 다음과 같이 프롬프트하고 예라고 말하고 처음으로 비밀번호를 묻습니다.

      The authenticity of host 'sample.org (205.214.640.91)' can't be established.
      RSA key fingerprint is 97:8c:1b:f2:6f:14:6b:5c:3b:ec:aa:46:46:74:7c:40.
      Are you sure you want to continue connecting (yes/no)? *yes*
      

      비밀번호 프롬프트? 암호를 줘

    4. 이제 프로세스가 실행중인 서버에서 ssh destinationuser@destinationhostname . 비밀번호없이 로그인해야합니다.

      참고 : 사용자의 .ssh 디렉토리 에서 파일의 기본 권한을 변경하지 마십시오 . 다른 문제가 발생할 수 있습니다


답변

해결 방법 (예 : Windows 슬레이브)에 대해서는 전역 속성에서 다음 환경 변수를 정의하십시오.

GIT_SSH_COMMAND="ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no"

젠킨스, 글로벌 속성, 환경 변수, GIT_SSH_COMMAND

참고 : 옵션이 보이지 않으면 EnvInject 플러그인이 필요할 수 있습니다.