본문 바로가기
TIL

gitlab과 SSH - private key를 왜 못 찾니

by 정말반가워요 2025. 2. 18.

스파게티코딩클럽에서 Docker를 사용한 CI/CD 강의를 듣던 중

RSA key pair를 사용해서 gitlab 권한 인증을 하는 파트가 있었다.

 

1. 로컬 PC key pair 생성

2. id_rsa 이름으로 생성된 private key의 파일명을 알아보기 쉽게 변경

3. public key를 gitlab 계정에 등록

4. SSH를 이용해 원격 Git 저장소 clone

 

강의를 듣고 위의 과정을 따라했지만, 권한 부족으로 clone이 실패했다.

결론부터 말하면 원인은 2번에 있었다(강사는 파일명을 변경하지 않음).

 

강의를 들으면서도 이상했던 것이. ~./.ssh 디렉토리 내의 private key를 지정하고 

git clone을 한 것도 아닌데, 어찌 원격 저장소의 public key와 로컬 PC의 private key가 매칭된 걸까?

그러니까 ssh 연결에 사용되는 기본 private key의 경로는 ~/.ssh/id_rsa인 것일까?

 

위의 추측을 AI님께 여쭤봤더니, 확실하진 않지만 그럴 가능성이 있다고 했다.

 

파일명을 다시 id_rsa로 변경했더니, 매우 잘 동작했다.

 

이번 일을 통해 SSH에 대해 알아간 점은 다음과 같다.

 

1. ssh agent는 ssh 연결 시 사용될 key의 목록들을 알고 있다.

그렇다는 건, ssh 연결 시도 시 ssh agent가 알고 있는 key만을 key pair 매칭에 사용할 수 있다는 것이다.

2. 그렇기 때문에 내가 key를 가지고 있음에도 연결에 실패할 경우는

 

ssh-add -l

명령어를 통해서 agent가 내 key를 알고 있는지 확인하고, 

ssh-add {key 경로}

명령어를 통해서 key를 추가해줄 수 있다.

3. (불확실. 내 환경에 한정해서)명시적인 등록 없이도 ~/.ssh/id_rsa 파일은 ssh agent가 선택하는 키 경로의 기본값이 될 수 있다.

 

 

 

'TIL' 카테고리의 다른 글

대기중인 스레드가 많으면 왜 좋지 않을까?  (0) 2025.03.30
사람을 낚는 AI  (0) 2025.03.03
CI/CD에서 Runner란?  (0) 2025.02.18