본문 바로가기

: Git (VCS)

[Mac] Git ssh 등록

반응형

Git ssh Configuration

Table of Contents

 

만약, git 이 설치되지 않았다면, 설치부터 하자.
맥이라면,

$ brew install git

1. ssh 키 생성

ssh란?

ssh를 등록하게 된 주된 이유는 제한된 repository 에 password 없이 사용하기 위한 위함이다. (기승전귀차니즘)

키 생성 부터 시작해보자. 만약, ssh 키를 사용 중이라면, 그대로 사용하자.
이 방식은 RSA암호화 방식을 사용한다. 만약, 최신 암호화 방식인 ed25519을 이용하고 싶다면, 저~기 아래로 가자. 이게 더 귀찮으므로 추천은 하지 않겠다..

$ ssh-keygen -t rsa -b 4096 -C "jintelli@example.com"
# 이후 다 엔터

 

ssh-keygen ref)

암호화 방식 [-t dsa | ecdsa | ed25519 | rsa]
비트 수 [-b bits]
코멘트 [-C comment] 이므로, 반드시 이메일 필요는 없다. 깃헙가이드는 이메일이긴 하다.

에러관련 Github 문서: https://docs.github.com/en/enterprise-server@3.0/github/authenticating-to-github

private/public key pair 생성을 완료 했다면, git에 내 public key를 등록해야 한다.

$ cat ~/.ssh/id_rsa.pub

나오는 값을 복사한 후, git 에 등록한다.

 


2. git global config 설정하기

깃에서 작업 수행 시, user가 누구인지 정의해준다.

$ git config --global user.name "Jintelli"
$ git config --global user.email "jintelli@example.com"
$ git config --list

 

2.1. 프록시 (Optional)

만약 회사라서 프록시 등록이 필요하다면, 아래와 같이 등록하자.

$ git config --global http.proxy http://${PROXY_SERVER_IP}
$ git config --global https.proxy http://${PROXY_SERVER_IP}

3. github에 public key 등록

계정 설정

우측 상단 프로필을 눌러 Settings(1번) 을 누른다. -> 보이는 화면 리스트에서 SSH and GPG keys (2번) 을 클릭한다.2번 순서대로 진행 → New SSH Key 클릭 → "cat ~/.ssh/id_rsa.pub" 값 복사 → 붙여넣기
(만약 ed25519 사용했으면, cat ~/.ssh/id_ed25519.pub)


4. 연결 확인

이제 모든 설정이 끝났다. 잘 되는지 확인을 해보자.

$ ssh git@github.com

여기서 아마 아래와 같은 메세지를 만날 수 있다.

 

The authenticity of host 'github.com (IP ADDRESS)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no)?

키가 맞는지 확인 하는 과정인데, yes 입력 후 넘어가면 정상적으로 될 것이다.

 

Hi username! You've successfully authenticated, but GitHub does not
provide shell access.

위와 같은 메세지를 받았다면,   
당신은 ssh를 이용해서 git을 사용할 수 있는 개발자가 되었습니다!👏👏  
🎉ㅊㅋㅊㅋ🎉


📖 여기서부턴 추가 단계!

5. Repository 등록하기 및 가져오기

추가로 깃에 있는 프로젝트 가져오는 방법과 등록되지 않은 내 프로젝트를 깃에 등록하는 방법을 알아보자.

5.1. Git 에 있는 프로젝트 가져오기

$ git clone ${GIT_REPOSITORY_SSH}

URL로 가져와도 무방하다.

5.2. 등록되지 않은 내 프로젝트 Git에 등록하기

$ git init
$ git remote add origin ${GIT_TARGET_URL}
$ git add .
$ git commit -m "Initial commit"
$ git push -u origin master

추가) ed25519 암호화 방식 이용하기

요즘 공식 문서들(github,gitlab)에서는 ed25519로 안내하고 있다.

$ ssh-keygen -t ed25519 -C "jintelli@example.com"
# 이후 다 엔터

등록 과정에서 나온 위치를 잘 확인해두자.


등록 예시)

$ ssh-keygen -t ed25519 -C "jintelli@example.com"
Generating public/private ed25519 key pair.
Enter file in which to save the key (/Users/jintelli/.ssh/id_ed25519):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/jintelli/.ssh/id_ed25519.
Your public key has been saved in /Users/jintelli/.ssh/id_ed25519.pub.
The key fingerprint is:
SHA256:VDYHWsZunzHi7xl6Rmq2Bq5WPWLUTLGReJ2ttch/gwc jintelli@example.com\

ssh-keygen 으로 생성하는 방식은 RSA와 같으므로 생략

$ open ~/.ssh/config

open은 텍스트 파일을 편집하기 위한 GUI 프로그램을 여는 명령어이다. gedit / vi  / code 등 원하는 방식으로 열도록 하자.

Host *
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_ed25519

위와 같이 수정

Note: If you chose not to add a passphrase to your key, you should omit the UseKeychain line.
# 주목하세요! passphrase를 등록하지 않았다면, 당신은 UseKeychain을 빼야합니다.

Note: If you see an error like this
# 주목하세요! 만약 이런 에러를 만난다면,

/Users/USER/.ssh/config: line 16: Bad configuration option: usekeychain
# (대충 usekeychain에 에러가 있다는 뜻)
add an additional config line to your Host * section:
# config 파일에 추가로 아래 내용을 쓰세요.

Host *
  IgnoreUnknown UseKeychain

위 내용은 깃헙 공식 문서를 참조하였다. 원문으로 보고싶다면 가장 하단에 링크를 참고하도록 하자.
# 뒤에 적힌 건 내가 대충한 번역임

$ ssh-add -K ~/.ssh/id_ed25519

ssh 프라이빗 키를 ssh-agent 와 store 에 등록하는 과정이다.
여기 까지 했으면 3. github에 public key 등록 으로 돌아가자.

 

주요 참고 문서.
https://docs.github.com/en/enterprise-server@3.0/github/authenticating-to-github/connecting-to-github-with-ssh

 

반응형