Git에서 SSH 키를 사용하여 저장소 또는 분기 복제

Ankit Raj Goyal 2023년1월30일
  1. SSH란?
  2. SSH 키를 사용하여 Git 클론을 사용해야 하는 이유
  3. SSH 키를 사용하여 Git에서 리포지토리 복제
  4. 옵션으로 Git 클론 SSH 확장
Git에서 SSH 키를 사용하여 저장소 또는 분기 복제

SSH Git Clone은 원격 리포지토리를 복제하는 안전한 방법을 제공합니다. 이 자습서에서는 SSH 키를 사용하여 Git 복제에 대한 전체 방법(SSH 키 생성, Git에서 SSH 설정 및 SSH 키를 사용하여 Git 복제)을 보여줍니다.

또한 기능을 확장하기 위한 몇 가지 유용한 옵션도 보여줍니다. 하나의 분기만 복제하거나, 선택한 디렉토리에 복제하거나, 대규모 리포지토리에 대해 몇 가지 커밋만 복제합니다.

SSH란?

SSH 또는 Secure Shell Protocol은 안전하지 않은 네트워크에서 보안 서비스를 사용하기 위한 네트워크 프로토콜입니다. 공개-개인 키 쌍을 사용합니다. 사용하려는 서비스에 공개 키를 보내는 동안에만 개인 키에 액세스할 수 있습니다.

공개 키로 암호화된 모든 데이터는 개인 키로만 열 수 있으며 그 반대의 경우도 마찬가지입니다.

SSH 키를 사용하여 Git 클론을 사용해야 하는 이유

SSH Git Clone은 안전하지 않은 공용 네트워크를 통해 원격 리포지토리를 안전하게 복제하는 쉬운 방법을 제공합니다.

SSH 키로 Git 복제를 수행하면 원격 서버에서 자신을 식별하기 위해 매번 암호를 다시 입력할 필요가 없습니다. 서버가 SSH 에이전트를 인증하면 세부 정보를 기억합니다. 매번 SSH 키를 다시 입력하지 않아도 됩니다.

SSH 키 쌍 생성

ssh key-gen 명령을 사용하여 SSH 공개-개인 키 쌍을 생성합니다.

ssh key-gen

SSH 키 생성

클라이언트 시스템의 키에 대한 액세스를 보호하기 위해 암호를 입력하라는 메시지가 표시됩니다. 비워 두거나 좋아하는 암호를 입력할 수 있습니다.

전문가 팁: 암호를 입력할 때 문자가 표시되지 않습니다. 이는 암호의 길이를 숨기고 보안을 강화하기 위한 것입니다.

전문가 팁 2: 암호를 어딘가에 쓰십시오. 잊어버리면 액세스 권한을 복구할 수 없습니다.

여기서 ssh key-gen 명령의 기본값을 유지하지만 원하는 암호화 알고리즘(예: ed2559), 레이블, 키를 저장할 특정 위치와 같은 다양한 옵션을 전달할 수도 있습니다.

저장된 SSH 키 쌍 확인

SSH 키가 올바르게 생성되고 저장되었는지 확인합니다.

ls -al ~/.ssh

SSH 키 확인

키는 컴퓨터의 .ssh 폴더에 저장됩니다. id_rsa 파일에는 개인 키가 있고 id_rsa.pub에는 공개 키가 있습니다.

출력에 이 두 파일이 표시되면 SSH 키 쌍을 성공적으로 만들고 저장한 것입니다.

SSH 에이전트에 SSH 키 추가

SSH 에이전트를 백그라운드 프로세스로 시작합니다.

eval "$(ssh-agent -s)"

SSH 에이전트 시작

에이전트가 백그라운드 프로세스 970으로 실행되는 것을 볼 수 있습니다. SSH 에이전트에 SSH 개인 키를 추가합니다.

ssh-add ~/.ssh/id_rsa

개인 키 샤젠트 추가

에이전트는 Identity added : <path_to_private_key 메시지와 함께 개인 키를 추가했음을 확인합니다.

원격 GitHub 계정에 공개 키 추가

공개 키를 클립보드에 복사합니다.

clip < ~/.ssh/id_rsa.pub

전문가 팁: PUBLIC 키를 항상 복사하십시오. 절대로 PRIVATE 키를 누구와도 공유하지 마십시오.

  1. GitHub 계정으로 이동합니다.
  2. 프로필 사진을 클릭합니다.
  3. 드롭다운 메뉴에서 설정을 선택합니다.

깃허브 설정

  1. 왼쪽 열에서 SSH 및 GPG 키를 클릭합니다.

ssh 및 gpg 키 선택

  1. 오른쪽 상단의 새 SSH 키를 클릭합니다.

새 ssh 키 클릭

  1. 설명을 추가하고 Key 필드에 PUBLIC 키를 붙여넣습니다.

github에 공개 sshkey 붙여 넣기

이제 GitHub 계정으로 SSH 에이전트를 성공적으로 식별했습니다.

GitHub에 대한 SSH 연결 테스트

GitHub에 대한 SSH 연결을 테스트합니다.

ssh -T git@github.com

SSH 연결 테스트

메시지는 성공적으로 인증되었음을 확인합니다.

SSH 키를 사용하여 Git에서 리포지토리 복제

다음으로 SSH를 사용하여 원격 저장소를 복제합니다.

  1. 저장소의 SSH URL 복사

GitHub의 저장소에서 오른쪽 상단의 코드 녹색 버튼을 클릭합니다.

SSH를 클릭하여 SSH URL을 표시하십시오. 이 SSH URL을 복사합니다.

SSH URL 복사

  1. Git 터미널에서 Git 클론 SSH

Git 터미널에서 SSH를 사용하여 원격을 복제합니다.

git clone <remote_repo_ssh_url>

<remote_repo_ssh_url>은 위에서 복사한 URL입니다.

Git 클론 SSH

SSH 키를 사용하여 Git에서 저장소를 성공적으로 복제했습니다.

옵션으로 Git 클론 SSH 확장

사용 사례에 대한 특정 유형의 클론이 필요할 수 있습니다. 몇 가지 옵션을 사용하여 SSH를 통해 Git 클론을 확장할 수 있습니다.

  1. Git 클론 SSH 특정 분기만

SSH 키를 사용하여 하나의 분기만 복제하려면:

git clone --branch <branch_to_clone> <remote_repo_ssh_url>

Git 클론 특정 분기

이것은 큰 리포지토리의 경우에 매우 유용합니다. 로컬 시스템의 시간과 공간을 절약하기 위해 작업 중인 분기만 복제하거나 관심 있는 몇 개의 분기만 복제할 수 있습니다.

  1. SSH 키를 사용하여 특정 위치에 Git 복제

로컬 디렉토리 구조를 잘 정리하기 위해 특정 폴더에 복제할 수 있습니다.

특정 위치에 복제하려면:

git clone <remote_repo_ssh_url> <specific_location_local>

Git 클론 특정 위치

  1. SSH 키로 얕은 Git 복제 - 몇 가지 커밋만 복제

복제 시간을 줄이거나 리포지토리가 큰 경우 로컬 디스크 공간을 절약할 수 있습니다. 마지막 몇 개 커밋 중 선택된 세트만 복제하면 됩니다.

최근 커밋 몇 개만 복제하려면:

git clone --depth=<n> <remote_repo_ssh_url>

여기 <n>은 복제하려는 최근 커밋 수입니다.

예를 들어 n = 2인 경우 마지막 두 커밋만 복제합니다.

Git 얕은 클론 SSH

관련 문장 - Git Clone