[git] SSH 키 생성 및 SSH로 원격저장소(github) 접속
Git

[git] SSH 키 생성 및 SSH로 원격저장소(github) 접속

 

깃허브에 앞으로 코드를 정리해보려고 다시 로컬과 연결하는 과정에서 SSH key를 생성하여 사용하는 방식이 있어서 이번엔 그 방식을 찾아 설정해보았다. 

SSH(Secure Shell Protocal)

  • 암호화된 원격 접속(통신) 프로토콜
  • 멀리 떨어져 있는 컴퓨터(SSH server)
  • 내 컴퓨터(SSH client)
  • SSH server와 SSH client는 Shell로 접근과 제어가 가능하다 ->SSH
  • 보안상 안전하다 (client와 server가 암호화되어 있기 때문에 중간에 데이터를 캐치할 수 없다)
  • 접속하고자 하는 컴퓨터(server)에 ssh server가 설치 되어 있어야 접속 가능하다

SSH key

SSH 프로토콜을 이용해서 서버에 접속 하고자 할 때 서버에 비밀번호를 입력하는 대신 SSH key를 제출

git에서 SSH Key를 왜 사용하는가?

  • local에서 git 원격 저장소에 push, pull을 할 때 패스워드를 매번 입력해야 하는데 SSH Key를 생성하면 매번 push, pull할 때 패스워드를 입력해야 하는 수고를 덜 수 있다.
  • git에서는 https를 통해 통신할 수 있지만 이번 기회에 SSH key를 생성해서 SSH로 통신하는 방법을 알아보고자 사용하였다.

SSH key 생성해보기

SSH Key는 일반적으로 ~/.ssh 에 존재한다. 

1. 키 생성 명령어

ssh-keygen -t rsa -b 4096 -C "email@gmail.com"
  • rsa는 암호화 방식으로 키를 생성한다는 의미
  • email는 깃에 등록한 이메일을 써주면 된다.
  • 4096같은 경우, 일단 찾아본대로 따라하긴 했는데 내용을 보니 SSH 키가 2048비트 또는 4096비트의 키여야 하기 때문이라고 한다.

2. passphrase입력 요구 : 엔터 두번 입력

이렇게 하고 나면 사용자 키 (passphrase)를 입력하게 나온다. (엔터치면 된다)

그럼 아래처럼 키 생성이 완료된 결과 화면이 나온다.

3, SSH-Agent에 SSH Key 등록

ssh-add -K ~/.ssh/id_rsa

생성한 SSH_Key파일을 ssh-agent에 등록하는 과정이다. 아래처럼 Identity added의 결과를 볼 수 있다.

 

4. SSH 공개키(id_rsa.pub) 복사하기

cat id_rsa.pub

해서 나오는 key값을 복사한다(ctrl+C)

5. Ghithub설정페이지 -> SSH and GPG keys -> New SSH Key-> Add SSH Key

  • github에 로그인하면 오른쪽 상단에 your profile이 있다 여기서 Settings을 눌러 설정창으로 들어간다.

  • 설정창에 들어가면 왼쪽 메뉴바에서 "SSH and GPG keys"를 클릭한다.

  • 오른쪽 상단 New SSH key를 클릭한다.
  • title에는 이 key를 지정하고 싶은 name을 적으면 되는데 나는 그냥 personal-mac으로 지정해주었다.
  • 그리고 아래 key란에는 아까 복사 해놓았던 key를 붙여넣기 한다.
  • 마지막으로 Add SSH key를 누르면 등록된다.

이제 github에 만들어놓은 repository를 ssh clone하여 로컬 저장소에서 clone하여 사용하면 된다. 아래처럼 확인해보면 clone이 잘 됨을 확인할 수 있다.

 

https://git-scm.com/book/ko/v2/Git-%EC%84%9C%EB%B2%84-SSH-%EA%B3%B5%EA%B0%9C%ED%82%A4-%EB%A7%8C%EB%93%A4%EA%B8%B0

 

Git - SSH 공개키 만들기

많은 Git 서버들은 SSH 공개키로 인증한다. 공개키를 사용하려면 일단 공개키를 만들어야 한다. 공개키를 만드는 방법은 모든 운영체제가 비슷하다. 먼저 키가 있는지부터 확인하자. 사용자의 SSH

git-scm.com

 

'Git' 카테고리의 다른 글

[git] GIT 버전관리의 본질  (0) 2020.12.26