우리 같은 프로그래머에게 동일한 작업을 반복하는 것은 지루하고 짜증나는 일입니다. 동의하시죠?
이러한 작업 중 하나가 GitHub의 개인 저장소와 상호 작용하는 것입니다. 그렇죠? 다들 아시잖아요. 그래서 해결책을 찾고 계시다가 이 글에 도착하신 거죠. 이 글을 다 읽으시면 검색을 멈추셔도 됩니다.
여기서는 비밀번호 없이 GitHub 개인 저장소에 접속하는 방법을 알려드리겠습니다. 더 지체하지 않고 시작해 보겠습니다.
GitHub 저장소에 접근하는 방법에는 두 가지가 있습니다. HTTPS와 SSH입니다. 대부분의 사람들은 HTTPS를 사용하고 있습니다. 하지만 이제 개인 저장소를 복제하는 데 HTTPS 방식을 사용하는 것은 효율적이지 않다는 것을 알게 되었습니다.
접근에는 복제, 푸시, 풀 등이 포함됩니다. 원격 저장소 업데이트와 관련된 모든 작업이죠.
공개 저장소에 접속하는 데는 문제가 없습니다. 그러나 개인 저장소에 접근하려면 본인 인증을 거쳐야 합니다. 인증 방법은 여러 가지가 있습니다.
가장 익숙한 방법부터 시작해 보겠습니다.
HTTPS를 사용하는 경우
HTTPS 방식에 익숙하실 테고 다른 방법을 찾고 계실 겁니다. 이 방식을 사용해서 개인 저장소에 접근하는 방법을 빠르게 살펴보겠습니다.
- 개인 저장소 링크를 복사합니다.
GitHub 개인 저장소
- 컴퓨터에서 터미널이나 cmd를 엽니다.
git clone [링크]명령어를 붙여넣어 개인 저장소를 복제합니다.- 링크를 개인 저장소 링크로 바꾸세요.
- 인증을 요구할 겁니다. GitHub 자격 증명을 입력해야 합니다.
- 먼저 GitHub 사용자 이름을 입력하라는 메시지가 표시됩니다. GitHub 사용자 이름을 입력하고 Enter 키를 누릅니다.
인증 사용자 이름
- 이제 비밀번호를 입력해야 합니다. GitHub 비밀번호를 입력하고 Enter 키를 누릅니다.
인증 비밀번호
다 됐습니다. HTTPS 방식으로 개인 저장소를 복제했습니다. 이제 저장소에서 무언가를 업데이트하고 커밋하고 원격으로 푸시해 보세요.
무엇을 눈치채셨나요?
또다시 인증을 요구합니다.
푸시 인증
개인 저장소와 상호 작용할 때마다 자격 증명을 입력하는 것이 얼마나 지루하고 번거로운 작업인지 느껴지시죠?
네, 그렇습니다.
개인 저장소와 작업할 때마다 GitHub 자격 증명을 입력할 수는 없습니다. 시간이 오래 걸리고 작업 속도가 느려집니다.
위의 문제를 해결하는 방법은 여러 가지가 있습니다. 가장 좋은 방법은 SSH를 사용하는 것이지만 다른 방법도 있습니다. 하나씩 살펴보겠습니다.
.git 설정
저장소 버전 관련 정보는 모두 .git 디렉터리에 저장됩니다. 이 폴더는 숨겨져 있습니다. 설정을 구성할 수 있는 구성 파일이 있지만 일반적으로 권장되는 방법은 아닙니다.
다음과 같이 저장소 URL에 사용자 이름과 비밀번호를 추가하여 개인 저장소를 복제할 수 있습니다.
git clone https://<strong>username:password</strong>@github.com/<strong>username</strong>/<strong>repository_name</strong>.git
사용자 이름, 비밀번호, 저장소 이름을 알맞게 변경하세요. URL에 자격 증명이 포함되어 있으므로 이전처럼 인증을 요구하지 않습니다.
따라서 위의 인증 방법을 사용하고 저장소 구성을 업데이트해야 합니다. 반복 인증을 제거하기 위해 URL을 업데이트하는 단계를 살펴보겠습니다.
- 복제된 저장소에서 .git 폴더를 엽니다.
.git 폴더
- config라는 파일을 찾을 수 있습니다. 원하는 텍스트 편집기를 사용하여 엽니다.
- 저장소 링크가 있는 줄이 있을 것입니다.
구성의 저장소 링크
- 위와 같이 사용자 이름과 비밀번호를 추가하여 URL을 업데이트합니다.
저장소 URL 업데이트
이제 다시 저장소에서 무언가를 업데이트하고 커밋하고 푸시해 보세요.
무언가 달라진 점을 느끼셨나요?
이번에는 GitHub 자격 증명을 요구하지 않을 것입니다. 저장소 설정을 업데이트하여 문제를 해결했습니다.
하지만 안전하지 않다는 것을 눈치채셨을 겁니다. 자격 증명을 노출하고 있습니다. 또한 이 방법은 GitHub 비밀번호에 @ 문자가 포함된 경우 작동하지 않습니다.
따라서 이 방법은 몇 가지 중요한 단점이 있습니다. 이 방법은 건너뛰고 다음 방법으로 넘어갑시다.
자격 증명 도우미
자격 증명 도우미를 사용하면 자격 증명을 ~/.git-credentials 파일에 영구적으로 저장할 수 있습니다.
처음 입력할 때 자격 증명을 저장합니다. 다시 개인 저장소에 접근하려고 하면 ~/git-credentials 파일에 저장될 때까지 자격 증명을 요구하지 않습니다. 이것이 문제 해결 방법 중 하나입니다. 정확한 단계를 따라 작동하는지 봅시다.
- 먼저
git config credential.helper store명령으로 자격 증명을 저장하는 옵션을 활성화해야 합니다. - 옵션을 활성화한 후 사용자 이름과 비밀번호를 사용하여 개인 저장소에 접근합니다.
- 사용자 이름과 비밀번호를 입력하면 다음과 같이 GitHub 자격 증명과 함께 ~/.git-credentials 파일에 저장됩니다.
자식 자격 증명
이제 같은 작업을 다시 수행하여 올바르게 작동하는지 확인합니다. 업데이트, 커밋, 푸시를 해보세요. 자격 증명을 저장하기 위해 위 단계를 따랐다면 자격 증명을 요구하지 않을 것이라고 확신합니다.
잘 되고 있습니다.
영구적으로 저장하는 대신 4시간 동안만 자격 증명을 저장하려면 어떻게 해야 할까요?
자격 증명 도우미는 일정 시간 동안 자격 증명을 임시로 저장하는 방법을 제공합니다. 저장소 대신 캐시를 사용하여 일정 시간 동안 자격 증명을 저장합니다.
캐시는 기본적으로 15분 동안 자격 증명을 저장합니다. 15분 후 git은 다시 자격 증명을 요청합니다. 하지만 다음 명령으로 기본 시간을 변경할 수 있습니다.
git config credential.helper 'cache --timeout={time_in_seconds}'
시간을 초 단위로 제공해야 한다는 점을 잊지 마세요. 실제로 어떻게 작동하는지 살펴봅시다.
- 먼저
git config credential.helper cache명령으로 자격 증명을 캐시하는 옵션을 활성화해야 합니다. - 사용자 이름과 비밀번호를 사용하여 개인 저장소에 접근합니다.
- 사용자 이름과 비밀번호를 입력하면 지정된 시간 동안 GitHub 자격 증명을 캐시합니다.
이제 업데이트, 커밋, 푸시를 해보세요. 다시 말하지만, 자격 증명을 캐시하라고 명령했기 때문에 자격 증명을 요구하지 않습니다.
우리는 git으로 초기화된 저장소에서 작업하기 위한 명령어를 보여드렸습니다. 위 명령에 --global 플래그를 추가하여 모든 프로젝트에서 git 구성을 전역적으로 업데이트할 수 있습니다.
개인 접근 토큰
개인 접근 토큰은 GitHub API에 대한 접근 권한을 부여하는 데 사용됩니다. 개인 접근 토큰은 OAuth 토큰과 같습니다. 따라서 git에서 비밀번호 대신 기본 인증에 사용할 수 있습니다. 개인 접근 토큰을 사용하여 문제를 해결할 수 있습니다.
어떻게 하는지 봅시다.
- GitHub 계정에 로그인합니다.
- 설정으로 이동합니다.
GitHub 설정
- 왼쪽 탐색 모음에서 개발자 설정으로 이동합니다.
GitHub 개발자 설정
- 개인 접근 토큰을 클릭하여 최종 목적지에 도달합니다. 다음과 같이 개인 접근 토큰이 표시됩니다.
GitHub 개인 접근 토큰
- 새 토큰 생성을 클릭하여 새 토큰을 만듭니다.
새 토큰 생성
- 토큰에 대한 메모를 입력합니다. 토큰을 기억할 수 있는 간단한 메모라고 생각하면 됩니다.
개인 접근 토큰 메모
- 토큰에 대한 권한을 선택합니다. 토큰을 사용하는 프로그램은 선택한 모든 권한에 접근할 수 있습니다. 여기서는 repo를 선택합니다.
저장소 권한
- 아래로 스크롤하여 토큰 생성 버튼을 클릭합니다.
토큰 생성 버튼
- 다음과 같이 개인 접근 토큰이 한 번만 표시됩니다. 개인 토큰은 다시 볼 수 없습니다. 따라서 복사하여 안전한 곳에 저장하세요. 필요하면 비밀번호 관리자를 사용하십시오.
개인 접근 토큰
- 개인 접근 토큰을 성공적으로 생성했습니다.
- 이제 이를 사용하여 개인 저장소에 접근할 차례입니다.
- .git/config 파일에서 저장소 URL을 첫 번째 방법과 유사하게
https://{personal_access_token}@github.com/hafeezulkareem/private_repository.git로 업데이트합니다.
구성의 개인 접근 토큰
이제 개인 저장소에 접근해 보십시오.
인증을 요구하나요?
아니요, 토큰이 활성화되는 한 인증을 요구하지 않습니다. 이제 문제를 해결하는 마지막 방법으로 이동하겠습니다.
SSH
SSH는 본인 인증에 사용됩니다. GitHub에서 SSH 관련 전체 문서를 볼 수 있습니다. 여기를 참조하세요.
아이디어는 간단합니다. SSH 키를 생성하고 GitHub 계정에 추가하면 비밀번호 없이 인증을 즐길 수 있습니다.
이 세 단계를 자세히 살펴보겠습니다.
- 시스템에서 터미널이나 cmd를 엽니다.
ssh-keygen -t rsa명령어를 입력하여 새로운 SSH 키를 생성합니다.- 키를 저장할 디렉터리를 요청합니다. Enter 키를 눌러 기본 디렉터리를 선택하세요. 그러나 기본 설정을 변경할 수도 있습니다. 여기서는 기본 디렉터리를 사용합니다.
SSH 디렉토리
- 이제 SSH 키를 보호하기 위해 비밀번호를 입력해야 합니다. 하지만 선택 사항입니다.
- SSH 키에 대한 비밀번호를 선택하면 시스템 전원을 켤 때마다 먼저 비밀번호를 입력해야 합니다.
- 비밀번호를 선택하지 않으면 먼저 입력할 필요가 없습니다.
SSH 암호
- 비밀번호를 다시 입력하여 확인하십시오.
SSH 암호
- 마지막으로 다음과 같이 새로운 SSH 키를 생성합니다.
SSH 키
시스템에서 새로운 SSH 키를 성공적으로 생성했습니다. 다음과 같이 두 개의 파일이 생성됩니다(경로를 변경한 경우 파일 이름이 다를 수 있습니다).
SSH 키 파일
이제 GitHub 계정에 연결할 차례입니다. 확장자가 .pub인 파일의 내용을 복사하여 연결을 위해 GitHub 계정에 추가해야 합니다. 제 경우에는 id_rsa.pub입니다.
- GitHub 계정에 로그인합니다.
- 설정을 엽니다.
GitHub 설정
- SSH 및 GPG 키를 클릭하여 최종 목적지에 도달합니다.
SSH 및 GPG 키
- 새로 생성된 SSH 키를 추가하려면 새 SSH 키를 클릭합니다.
새 SSH 키
- 다음 화면으로 이동합니다.
새 SSH 키
- SSH 키에 적절한 제목을 추가합니다. SSH 키는 시스템마다 다릅니다. 따라서 이를 기반으로 선택하는 것이 좋은 방법입니다. 하지만 유일한 방법은 아닙니다. 원하는 대로 선택할 수 있습니다.
- 제목을 선택한 후 .pub 콘텐츠를 복사하여 두 번째 필드에 붙여넣습니다.
새 SSH 키
- 마지막으로 SSH 키 추가를 누르고 GitHub 비밀번호로 접근을 확인합니다.
- 새로 추가된 SSH 키는 다음과 같습니다.
새 SSH 키
새로 생성된 SSH 키를 GitHub에 추가했습니다. 이제 나중에 비밀번호 없는 인증을 사용하려면 SSH 연결을 확인해야 합니다. 터미널이나 cmd에 다음 명령어를 입력하십시오.
ssh -T [email protected]
SSH 연결
확인을 요청할 겁니다. 확인하세요. 다 됐습니다.
이제 개인 저장소를 복제해 보십시오. 이번에는 어떤 인증도 요구하지 않을 겁니다.
업데이트, 커밋, 푸시를 해보세요. 짜잔! 더 이상 인증을 요구하지 않습니다. 즐기세요!
결론
휴! 항상 자격 증명을 입력하지 않고 개인 저장소에 접근하는 다양한 방법을 살펴보았습니다. 어떤 방법을 사용해도 상관없지만 일반적이고 권장되는 방법은 인증에 SSH를 사용하는 것입니다.
다시 한번 말하지만, 선택은 여러분의 몫입니다. 반드시 SSH만 사용해야 하는 규칙은 없습니다. 하지만 대부분의 기업은 인증을 위해 SSH 방식을 사용합니다. 안전하고 시간을 절약할 수 있기 때문입니다. 자격 증명이 안전하게 보호되는지 확인하십시오.
즐거운 개발 되세요! 🙂