etc.

SSH keygen으로 패스워드 없이 git 사용하기(Bitbucket/github)

공대 아로마 2021. 1. 31. 18:31

 

개발회사에서 협업 툴로 github, Bitbucket 등을 사용한다. 나의 경우는 Bitbucket을 사용하고 있다.

그런데 매번 push나 pull할 때 password를 물어봐서 귀찮긴 했었다. 그래서 오늘, 매번 치지 않게 설정하는 걸 해봤다.

참고로 터미널에서 명령어로 설정하는 방법이다. 내 경우는 라즈베리파이 4에서 설정하였다.

 


1. SSH keygen으로 키 생성

cd .ssh
ssh-keygen

 

터미널에서 위와 같이 명령어를 입력하면, public/private rsa 키가 생성된다.

file을 입력하라고 나오면 id_rsa형식으로 입력하면 된다.

passphrase를 치라고 하면 해당 개발서버(나의 경우는 Bitbucket)의 비밀번호를 입력한다.

 

그러면 key fingerprint라면서 이상한 숫자와 문자의 조합이 뜨고, key randomart image라면서 그럼 같은 게 하나 그려진다.

 

 

2. 개발서버 세팅

나의 경우는 Bitbucket 웹페이지에서

Bitbucket Setting - SECURITY - SSH keys 페이지로 들어간 다음, ADD key 버튼을 눌러 key를 입력하여 세팅을 마무리했다.

여기서 말하는 key는 터미널에서 다음과 같이 입력하여 찾을 수 있다.

cat id_rsa.pub

아까 만든 public 키를 cat하면 나오는 게 key다.

맨 끝에 붙어있는 서버 이름같은 것만 빼고 복붙하면 된다.

 

 

3. SSH 에이전트 실행

다음 명령어로 SSH 에이전트를 백그라운드로 실행시킨다.

eval $(ssh-agent -s)

 

※ 다음을 하기 이전에 혹시 그 전에 SSH방식이 아니라 HTTPS방식으로 개발서버와 주고 받고 있었다면, SSH방식으로 바꿔주는 스텝도 필요하다. 다음 명령어로 세팅을 바꿔준다.

git remote set-url origin (YOUR-URL)

 

YOUR-URL부분에는 개발서버에서 clone시 가져오는 url중에서 SSH형식으로 된 url을 복붙하면 된다.

 

 

4. key 등록

이제 만든 키를 등록만 하면 된다.

ssh-add ~/.ssh/id_rsa

ssh-add라는 명령어를 사용해서 아까 만든 키를 등록하면 된다.

 

※ 다른 프로젝트에서 push나 pull을 하려고 하면 denied가 뜨면서 실패할 것인데, 그건 아까 3번 과정에서 추가한 프로젝트에만 해당하기 때문이다. 다른 프로젝트에서도 자동 로그인처럼 사용하려면 4번 과정을 해줘야한다.

ssh-add -l //등록된 key의 list를 보여준다. //아마 결과는 The agent has no identities.일 것이다. ssh-add ~/.ssh/id_rsa //4번 과정

ssh-add -l 		//등록된 key의 list를 보여준다.
			//아마 결과는 The agent has no identities.일 것이다.
ssh-add ~/.ssh/id_rsa 	//4번 과정