깃허브(GitHub)나 깃랩(GitLab)으로 프로젝트를 진행하다 보면 가장 귀찮고 답답한 순간 중 하나가 바로 코드 푸시(Push)할 때 인증을 요구받는 순간이에요. 특히 깃허브에서 비밀번호 기반 인증을 전면 중단한 이후로는 길고 복잡한 개인용 액세스 토큰(Personal Access Token, PAT)을 발급받아 입력해야 했는데요. 토큰 만료 기간이 다가올 때마다 다시 발급받고 갱신하는 과정은 정말 피곤한 일이죠. 😊
저도 예전에는 프로젝트를 클론할 때 무심코 초록색 버튼에 적힌 HTTPS 주소를 복사해 쓰곤 했답니다. 그러다 협업 프로젝트 마감 직전에 토큰이 만료되어 푸시가 막히는 아찔한 경험을 한 뒤로는 무조건 SSH 방식으로 갈아타게 되었어요. SSH 방식을 사용하면 내 컴퓨터의 비대칭 암호키를 통해 한 번만 인증 설정을 끝내면 더 이상 귀찮은 비밀번호나 토큰 입력 없이 매끄럽게 협업할 수 있거든요.
이미 HTTPS 주소로 클론해둔 기존 저장소를 지우고 다시 받을 필요는 전혀 없어요! 터미널에서 간단한 명령어 한 줄만 입력하면 원격 저장소 주소를 손쉽게 SSH로 변경할 수 있답니다. 오늘 글에서는 원격 저장소 주소 확인부터 SSH 주소 변경, 그리고 연결 테스트까지 초보자도 쉽게 따라 할 수 있도록 차근차근 정리해 드릴게요.
왜 HTTPS 대신 SSH로 변경해야 할까요? 🤔
우리가 Git을 사용할 때 원격 저장소와 통신하는 통로는 크게 HTTPS와 SSH 두 가지가 있어요. 둘 다 데이터를 안전하게 암호화하여 전송한다는 공통점이 있지만, 인증을 처리하는 방식에서 큰 차이가 발생합니다.
HTTPS는 웹 브라우저처럼 친숙하고 방화벽 설정에 구애받지 않는 장점이 있지만, 계정 아이디와 토큰을 지속적으로 증명해야 해요. 반면 SSH(Secure Shell)는 컴퓨터 내부에 저장된 비공개키(Private Key)와 깃허브 서버에 등록된 공개키(Public Key)의 수학적 쌍을 통해 사용자를 자동으로 인증합니다. 즉, 키 쌍이 일치하면 별도의 입력 과정 없이 바로 통신이 허용되는 원리예요.
HTTPS vs SSH 프로토콜 비교
| 비교 항목 | HTTPS 방식 | SSH 방식 | 추천 대상 |
|---|---|---|---|
| 주소 형태 | https://github.com/user/repo.git | git@github.com:user/repo.git | – |
| 인증 수단 | Personal Access Token(PAT) | SSH 비대칭 키 쌍 (id_ed25519 등) | 개발 생산성 중시 개발자 |
| 인증 편의성 | 토큰 만료 시 재발급 및 재등록 필요 | 최초 1회 등록 후 추가 입력 불필요 | 지속적인 장기 프로젝트 |
| 보안성 수준 | 토큰 유출 시 권한 악용 위험 존재 | 비공개키가 로컬 PC를 벗어나지 않음 | 기업 및 보안 필수 환경 |
SSH 주소로 변경하기 전, 내 컴퓨터에 SSH 키가 생성되어 있고 깃허브 계정의 [Settings] > [SSH and GPG keys] 메뉴에 등록되어 있어야 해요. 키가 없다면 터미널에서
ssh-keygen -t ed25519 -C "내이메일@example.com" 명령어로 먼저 키를 생성해주세요!
현재 원격 저장소 확인 및 변경 단계 📊
원격 저장소 주소를 변경하는 과정은 복잡하지 않아요. 터미널(또는 Git Bash)을 열고 변경하고자 하는 로컬 저장소 폴더로 이동한 뒤, 아래의 3단계를 순서대로 실행하면 됩니다.
1단계: 현재 등록된 원격 저장소 URL 확인
현재 내 로컬 저장소가 어떤 프로토콜로 연결되어 있는지 아래 명령어로 확인합니다:
git remote -v
출력 결과에 https://github.com/... 형태가 나온다면 현재 HTTPS 방식으로 연결되어 있는 상태예요.
2단계: set-url 명령어로 SSH 주소로 변경
원격 저장소(보통 기본 이름은 origin)의 URL을 새로운 SSH 주소로 재설정합니다:
git remote set-url origin git@github.com:사용자아이디/저장소이름.git
원격 저장소 이름이 origin이 아니라면 해당 원격지 이름으로 변경하여 입력해주세요.
3단계: 변경 결과 확인 및 SSH 연결 검증
주소가 올바르게 바뀌었는지 다시 한번 확인하고 연결 상태를 점검합니다:
git remote -v
ssh -T git@github.com
“Hi 사용자이름! You’ve successfully authenticated…” 메시지가 나타나면 성공적으로 SSH 인증이 완료된 것입니다.
SSH 주소 형식은
https:// 대신 git@github.com:으로 시작하고, 도메인 뒤에 슬래시(/)가 아닌 콜론(:)이 붙습니다. 주소 오타가 나면 푸시할 때 연결 실패 오류가 발생하므로 깃허브 웹페이지의 [Code] > [SSH] 탭에서 주소를 직접 복사하는 것을 추천드려요!
원격 저장소 SSH 주소 변환 도구 🔢
기존의 HTTPS 주소를 직접 수정하기 헷갈리시나요? 아래 간편 도구에 현재 사용 중인 HTTPS 저장소 주소를 붙여넣고 버튼을 누르면 즉시 실행 가능한 Git 터미널 명령어를 자동으로 생성해 드립니다.
📝 핵심 변경 문법 공식
Git 주소 변경 공식 = git remote set-url [원격저장소명] git@[호스트명]:[사용자명]/[저장소명].git
🔢 Git SSH 변환 명령어 생성기
실전 예시: 구체적인 프로젝트 변경 사례 📚
이해를 돕기 위해 실제 개발자 ‘민수’의 프로젝트 전환 사례를 살펴볼게요. 민수는 기존에 HTTPS 방식으로 클론받아 작업하던 사이드 프로젝트의 주소를 SSH로 전환하려고 합니다.
사례 주인공 민수의 현재 상황
- 프로젝트 이름: web-dashboard
- 깃허브 계정명: dev-minsu
- 현재 설정된 원격 주소:
https://github.com/dev-minsu/web-dashboard.git - 발생 문제: 코드 푸시할 때마다 매번 PAT 토큰을 붙여넣어야 해서 작업 흐름이 끊김
민수가 실행한 변경 과정
1) 현재 상태 확인:
$ git remote -v
origin https://github.com/dev-minsu/web-dashboard.git (fetch)
origin https://github.com/dev-minsu/web-dashboard.git (push)
2) set-url 명령어로 SSH 주소 주입:
$ git remote set-url origin git@github.com:dev-minsu/web-dashboard.git
3) 최종 변경 결과 검증:
$ git remote -v
origin git@github.com:dev-minsu/web-dashboard.git (fetch)
origin git@github.com:dev-minsu/web-dashboard.git (push)
최종 적용 결과
– 결과 1: git push origin main 실행 시 비밀번호 및 토큰 요청 팝업이 일체 뜨지 않고 1초 만에 배포 완료!
– 결과 2: 로컬 SSH 에이전트와 연동되어 여러 브랜치를 오가며 작업해도 인증 스트레스 제로 달성!
명령어 대신 프로젝트 루트의
.git/config 숨김 파일을 텍스트 편집기(VS Code 등)로 열어서 [remote "origin"] 섹션 아래의 url = ... 항목을 직접 SSH 주소로 수정하고 저장해도 완전히 똑같은 효과를 얻을 수 있어요!
마무리: 핵심 내용 요약 📝
지금까지 Git 원격 저장소 주소를 HTTPS에서 SSH로 변경하는 전체 과정을 알아보았어요. 핵심 포인트만 다시 한번 짚어볼게요.
- 원격 저장소 상태 파악: 터미널에서
git remote -v로 현재 주소를 먼저 확인합니다. - 단 한 줄의 핵심 명령어:
git remote set-url origin git@github.com:유저/저장소.git명령어로 주소를 갱신합니다. - 인증 키 등록 필수: SSH 전환 전에 반드시 로컬의 SSH 공개키가 깃허브 계정에 등록되어 있어야 원활하게 작동합니다.
- 연결 테스트:
ssh -T git@github.com을 통해 터미널 권한 인증을 사전에 점검해 보세요.
Git 원격 저장소 SSH 전환 30초 요약
자주 묻는 질문 ❓
cat ~/.ssh/id_ed25519.pub 명령어로 공개키 내용을 복사한 뒤, 깃허브 웹사이트의 [Settings] > [SSH and GPG keys]에 새 키로 등록해주시면 바로 해결됩니다.git remote -v 명령어로 확인했을 때 표시되는 원격지 이름(예: upstream, github 등)을 git remote set-url [해당원격지이름] [새SSH주소] 형태로 지정하여 입력하시면 동일하게 변경됩니다.git remote set-url 명령어는 내부적으로 .git/config 파일의 해당 원격지 url 값을 갱신하는 역할을 하므로, 텍스트 편집기에서 직접 수정하여 저장해도 완벽하게 동일하게 작동합니다.git remote set-url origin https://github.com/사용자/저장소.git 명령어를 실행하시면 언제든지 다시 HTTPS 인증 방식으로 복귀할 수 있습니다.git@gitlab.com:사용자/저장소.git, 비트버킷의 경우 git@bitbucket.org:사용자/저장소.git 형태로 각 플랫폼에서 제공하는 SSH 주소를 그대로 명령어에 대입하여 실행하시면 됩니다.
원격 저장소 주소를 HTTPS에서 SSH로 바꾸는 방법, 생각보다 정말 간단하죠? 이제 번거로운 비밀번호나 토큰 입력 스트레스에서 벗어나 더욱 쾌적하고 집중도 높은 코딩 시간을 만들어보세요. 따라 하시면서 궁금한 점이나 막히는 부분이 있다면 언제든지 댓글로 물어봐주세요~ 😊