기존에는 Github으로 push 하였는데 Bitbucket으로 서버를 변경하면서 몇가지 다른점이 있어 포스팅 한다.
Summary
Bitbucket으로 소스를 Private Repository에 아이디 비밀번호를 넣지 않고 push 하고자 한다.
보통 ssh key를 발급하여 등록후 사용한다.
Key 생성
ssh-keygen으로 서버에 키를 생성한다.
리눅스 서버에는 기본적으로 ssh-keygen이 설치되어 있다.
ssh-keygen
$ ssh-keygen -t rsa -C "your email address"
Enter만 치면 키를 생성해 주고 생성된 키들은 권한 설정을 해 준다.
ssh-agent 설정
ssh-agent
# agent 시작
# 새로운 키 load
# 등록확인
2048 SHA256:Tt1Hm8vwDnoh7rbKg44lx1Hc5FVxnW4+QQDuBSAyT3c /root/.ssh/id_rsa (RSA)
공개키는 ~/.ssh/id_rsa.pub 내용이니 복사해 주자
public key 복사
$ cat ~/.ssh/id_rsa.pub
Bitbucket에 Access Key 등록하기
Repository setting > Access keys
존재하지 않는 이미지입니다.
Add key
존재하지 않는 이미지입니다.
Read /Write에 체크하고 방금전 생성한 pub key를 붙여넣는다.
Add Key > 설정완료
Push 테스트
우선 git의 주소를 알아야 하는데 https가 아닌 ssh 주소를 알아야 한다.
존재하지 않는 이미지입니다.
Bitbucket에서 Clone을 클릭하면 HTTP가 있고 클릭하면 SSH를 선택할 수 있다.
해당 주소를 복사하여 push에 이용하면 된다.
git push
$ git add .
[master 57740e4] 2018-06-13 01:27
create mode 120000 jenkins/jobs/jenkins_backup/builds/lastFailedBuild
create mode 120000 jenkins/jobs/jenkins_backup/builds/lastSuccessfulBuild
create mode 120000 jenkins/jobs/jenkins_backup/builds/lastUnsuccessfulBuild
create mode 100644 jenkins/jobs/jenkins_backup/config.xml
$ git push ssh://git@git.daium.com:7999/ci/jenkins.git master
Compressing objects: 100% (11/11), done.
Total 12 (delta 6), reused 0 (delta 0)
ca052fa..57740e4 master -> master
위와 같이 하면 비밀번호 없이 push 가능하다.
난 jenkins에서 자동으로 백업작업을 돌리기 위해 이렇게 세팅을 하였다.
References
Last updated @3/30/2023
Copyright 2023, 실전코딩 All Rights Reserved.