일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 젠킨스
- meta threads
- endless scrolling
- skeleton architecture
- 자료구조
- 쓰레드 비디오 다운로드
- re-engineering
- cloud firestore
- git
- Realtime Database
- 메타 쓰레드
- 직장영어
- non conventional NFR
- 안드로이드
- RecyclerView
- firestore
- 영어회화
- 특수기호
- 객치지향프로그래밍
- conventional NFR
- 파이썬
- Android
- Firebase
- 쓰레드 이미지 다운로드
- jenkins
- django
- 라이브아카데미
- 이모티콘
- Python
- 특수문자
- Today
- Total
Owl Life
Jenkins Publickey 에러로 repository 접근할 때 error 발생하는 이슈 해결. (ssh 키 생성 및 등록) 본문
Jenkins Publickey 에러로 repository 접근할 때 error 발생하는 이슈 해결. (ssh 키 생성 및 등록)
Owl Life 2019. 10. 24. 00:59에러 내용
Failed to connect to repository.
Permission denied (publickey).
fatal: 리모트 저장소에서 읽을 수 없습니다.
정상적으로 저장소에 접근이 가능한 경우
원인
public repository라면 url만 입력해도 바로 연동이 되지만 private repository인 경우에는 ssh key를 등록하여야 정상적으로 git 반영이 가능합니다. ssh 키 생성 및 repository에 등록하는 과정을 알아보도록 하겠습니다.
인증키 만들기
인증키는 ssh-keygen으로 생성한다.
$ cd ~/.ssh
$ ls
만약 id_rsa / id_rsa.pub 와 같은 키 쌍이 존재한다면 키 생성없이 바로 등록 과정을 거쳐도 됩니다.
// 없는 경우에는 키 생성
:~/.ssh$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/allsoft/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/allsoft/.ssh/id_rsa.
Your public key has been saved in /home/allsoft/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:KxoQ6MNVJZh3pWqUsbObfl9d4zavt6ruK2+D5jIO4q0 allsoft@allsoft-ubuntu
The key's randomart image is:
+---[RSA 2048]----+
| o+.... |
| . o..=.. |
|. ...=.. |
|o ... + |
| +. + S o |
| ... o . . o .|
| ..+. . .. . + |
| . +o.= +.o . +|
| Eooo.*o**+.o+o|
+----[SHA256]-----+
// 키 생성시 비밀번호는 입력하지 않아도 됩니다.
인증키를 메모리에 상주 시키고 키 등록
~/.ssh$ eval $(ssh-agent -s)
Agent pid 9071
~/.ssh$ ssh-add ~/.ssh/id_rsa
Identity added: /home/allsoft/.ssh/id_rsa (/home/allsoft/.ssh/id_rsa)
ssh-agent 를 이용하여 인증키를 메모리에 상주시켜두면 한번만 인증키 암호를 입력하면 다음부터는 입력하지 않아도 같은 인증키를 사용하는 모든 서버들에 접속 할 수 있습니다.
private repository의 설정에 ssh 키 등록
방금 생성한 public key를 repository의 설정에 등록합니다. 등록하면 젠킨스에서 바로 접근이 가능합니다.
본 예제의 경우에는 gitlab에서 테스트를 하였기 때문에 gitlab의 settings에서 키를 등록해줍니다.
gitlab.com의 User settings(profile) 진입 후 SSH Keys 선택
입력할 public key는 아래처럼 command로 확인 가능. 복사 해서 붙여넣기 후 저장합니다.
allsoft@allsoft-ubuntu:~/.ssh$ cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC........ allsoft@allsoft-ubuntu
Jenkins Credentials 추가
jenkins 워크스페이스 설정에서 repository url 입력시 private key를 선택하도록 합니다.
- Kind에서 SSH Username with private key 를 선택
- ID 및 username는 입력하지 않음.
- Description은 키 이름 입력
- Private Key에서 직접 입력을 선택 하고 Add Key 버튼 선택 후 private key를 직접 입력합니다.
- Passphrase는 키 생성시 입력하지 않았으므로 빈칸으로 비워둡니다.
- Add 버튼 클릭
Credentials 선택
위에서 생성한 키를 선택후 잠시 기다리면 정상적으로 접근이 가능하다는 표시로 에러 문구가 사라집니다.
이제부터 정상적으로 저장소에 접근이 가능합니다.
'Jenkins' 카테고리의 다른 글
젠킨스의 build description을 커스텀 해보자. [description setter plugin] (0) | 2019.10.29 |
---|---|
Jenkins에 checkstyle plugin 적용하기 (0) | 2019.10.25 |
Jenkins에 lint plugin 적용하기 (0) | 2019.10.24 |
Jenkins에서 Github 저장소에 있는 Gradle 기반의 Android 프로젝트 생성하기 (0) | 2019.10.17 |
우분투 18.04 젠킨스 설치 (0) | 2019.10.17 |