jenkins Failed to connect to repository - private repository 안됨
Failed to connect to repository : Command "git ls-remote -h -- https://github.com/gitID/projectName.git HEAD" returned status code 128:
stdout:
stderr: remote: Invalid username or password.
fatal: Authentication failed for 'https://github.com/gitID/projectName.git/'
저장소에 제대로 접근이 되지 않아서 생기는 오류이다.
다음 에러가 생기는 원인으로는
public repository 는 바로 연동이 되지만 private repository의 경우에는 ssh key를 등록해야 정상적으로 git 에 적용이 가능하다.
ssh key를 생성
나의 경우 docker image로 jenkins를 만들었으므로 일단 jenkins이미지에 접근해 ssh key를 생성해준다.
mkdir .ssh
ssh-keygen
#Enter 로 넘기기
id_rsa.pub 파일을 못찾겠는 경우 find / -name *.pub 다음 명령어로 찾아서 확인하면된다.
생성된 키를 복사하기 위해서 내용 확인을 한다.
cat /root/.ssh/id_rsa.pub
gitlab 으로 넘어와서
본인 git setting 에서 방금 생성한 키 전체 내용을 적는다.
jenkins에 Credentials 추가하기
kind 에 ssh Username with private key를 선택하고
Kind에서 SSH Username with private key 를 선택
- ID 및 username는 입력하지 않음.
- Description은 키 이름 입력
- Private Key에서 직접 입력을 선택 하고 Add Key 버튼 선택 후 private key를 직접 입력합니다.
ssh key 내용은 다음 명령어를 통해 나온 내용 입력해준다. (key의 값은 BEGIN RSA PRIVATE KEY로 시작)
cat ~/.ssh/id_rsa
- Passphrase는 키 생성시 입력하지 않았으므로 빈칸으로 비워둡니다.
- Add 버튼 클릭
description 에 설명만 적어준다.
private key 에 ssh key 내용은 다음 명령어를 통해 나온 내용 입력해주고
cat ~/.ssh/id_rsa
add 로 Credentials을 추가한다.
추가한 Credentials 로 변경을 해주면 에러가 안나오는 것을 확인할 수 있다.