맥/리눅스에서 Git과 SSH 설정하기

작성일 :

리눅스에서 Git과 SSH 설정하기

Git은 분산 버전 관리 시스템으로, 개발자들 사이에서 널리 사용됩니다. SSH를 사용하여 Git을 설정하면 보다 안전하게 리포지토리에 접근할 수 있습니다. 이 글에서는 리눅스 환경에서 Git과 SSH를 설정하는 방법을 단계별로 안내합니다.

1. SSH 키 생성

먼저 SSH 키를 생성해야 합니다. 이를 위해 터미널을 엽니다.

bash
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

여기서 "your_email@example.com"은 GitHub 또는 GitLab에 등록된 이메일 주소입니다. 위 명령을 입력하면 몇 가지 질문을 받게 됩니다. 기본값을 사용하려면 Enter 키를 누르시면 됩니다.

2. SSH 에이전트 시작 및 키 추가

생성한 SSH 키를 SSH 에이전트에 추가합니다.

bash
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa

만약 "Could not open a connection to your authentication agent." 오류가 발생한다면, SSH 에이전트를 다시 시작하고 키를 추가해보십시오.

bash
ssh-agent -k
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa

3. SSH 공개 키 복사

SSH 공개 키를 복사하여 Git 서버에 추가해야 합니다.

bash
cat ~/.ssh/id_rsa.pub

출력된 키를 복사합니다.

4. Git 서버에 SSH 키 추가

GitHub 또는 GitLab에 로그인한 후 설정(Settings)에서 SSH 키를 추가합니다.

GitHub:

  1. 오른쪽 상단의 프로필 사진을 클릭하고 Settings를 선택합니다.
  2. SSH and GPG keys를 선택합니다.
  3. New SSH key 버튼을 클릭합니다.
  4. Title을 입력하고, Key 필드에 복사한 공개 키를 붙여넣기 한 후, Add SSH key 버튼을 클릭합니다.

GitLab:

  1. 오른쪽 상단의 프로필 사진을 클릭하고 Preferences를 선택합니다.
  2. SSH Keys를 선택합니다.
  3. Key 필드에 복사한 공개 키를 붙여넣기 한 후, Title을 입력하고, Add key 버튼을 클릭합니다.

5. SSH 연결 테스트

SSH 연결이 잘 되는지 테스트합니다.

bash
ssh -T git@github.com
# 또는 GitLab의 경우
ssh -T git@gitlab.com

성공적인 연결 메세지가 출력되면 설정이 완료된 것입니다.

6. Git 리포지토리 클론

이제 SSH를 통해 Git 리포지토리를 클론할 수 있습니다.

bash
git clone git@github.com:username/repository.git
# 또는 GitLab의 경우
git clone git@gitlab.com:username/repository.git

7. SSH 구성 파일 설정 (선택 사항)

SSH 구성 파일을 설정하여 특정 호스트에 대해 사용자 정의 설정을 정의할 수 있습니다. SSH 구성 파일을 엽니다.

bash
nano ~/.ssh/config

SSH 구성 파일에 다음 설정을 추가합니다.

# GitHub 설정
Host github.com
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_rsa_github
  AddKeysToAgent yes

# GitLab 설정
Host gitlab.com
  HostName gitlab.com
  User git
  IdentityFile ~/.ssh/id_rsa_gitlab
  AddKeysToAgent yes

위 설정에서:

  • Host는 설정의 이름을 정의하며, SSH 연결 시 이 이름을 사용합니다.
  • HostName은 실제 원격 호스트의 이름입니다.
  • User는 연결 시 사용할 사용자 이름입니다.
  • IdentityFile은 사용할 SSH 키의 경로를 지정합니다.
  • AddKeysToAgent는 키를 SSH 에이전트에 추가할지 여부를 결정합니다.

8. SSH 키 생성 (필요한 경우)

각 호스트에 대해 별도의 SSH 키를 생성합니다.

bash
ssh-keygen -t rsa -b 4096 -C "your_email@example.com" -f ~/.ssh/id_rsa_github
ssh-keygen -t rsa -b 4096 -C "your_email@example.com" -f ~/.ssh/id_rsa_gitlab

SSH 에이전트를 시작하고, 키를 추가합니다.

bash
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa_github
ssh-add ~/.ssh/id_rsa_gitlab

각 Git 서버(GitHub, GitLab)에 SSH 공개 키를 추가합니다.

이 과정을 통해 SSH 구성 파일을 설정하여 GitHub와 GitLab에 대해 별도의 SSH 키를 사용할 수 있습니다. SSH 구성 파일은 다양한 호스트에 대해 SSH 설정을 사용자 정의할 수 있는 강력한 도구입니다.

이제 보안적으로 안전한 방법으로 Git을 사용할 수 있습니다. Happy Coding!