SSH 란 Secure Shell 의 약자로, 강화된 보안방식으로 정보를 교환하는 방식을 의미합니다. 이 방식은 private key 와 public key 의 쌍을 통해서 컴퓨터를 인증합니다.
public key 는 외부에 공개된 키이며, private key 는 사용자 자신만 알 수있는 키입니다.
원래는 깃허브 아이디로 로그인해서 해당 remote repository 를 자신이 만들었다고 인증해줘야 하지만, SSH remote access 의 경우는 private key 와 public key 를 이용해서 현재 사용하고 있는 기기가 무엇인지를 인증하는 방식입니다.
SSH remote access 를 사용하면 어떤 기기인지 상관없이 등록만하면 언제 어디서든지간에 이 깃허브 원격저장소에 접근 가능!
아래와 같이 "ssh-keygen" 키워드를 입력하여 public, private key 를 생성할 수 있습니다. 이때 id_rsa 파일과 is_rsa.pub 파일이 생성이 되는데, 이들은 각각 private key 와 public key 를 보유하고 있는 파일입니다.
id_rsa 파일은 private key 를 담고있으며, id_rsa.pub 파일은 public key 를 담고 있습니다.
로컬에서 직전에 생성 및 발급한 key 를 가지고 깃허브에 접근할 수 있어야할 것입니다. 이 과정에 대해 알아봅시다. 정리하자면 아래와 같습니다.
- 1) 로컬에서 만들어진 public key 를 깃허브에 전송한다.
- 2) 깃허브에 보낸 public key 와 로컬에서 만든 private key 를 비교해서, 깃허브 해당 원격저장소에 접근하는 사용자가 올바른 사용자인지를 인증한다.
- 3) 깃허브의 public key 와 로컬의 private 가 매칭되면(동일하면) 로컬 repositort 와 원격 repository 가 서로 연결이 된다.
리눅스 명령어 중에 "cat" 이라고 아시나요? cat 명령어는 파라미터 값으로 주어진 해당 파일에 대한 모든 내용을 출력하는 명령어입니다.
이 명령어를 통해 id_rsa.pub 에 저장된 public key 값을 출력하고, 출력된 public key 값을 복사하도록 합니다.
settings 에 들어가면 SSH and GPG keys 란이 있을겁니다. 해당 란에 접속해서 직전에 카피해둔 public key 를 적용시켜주면 됩니다.
해당 public_key 를 붙여넣고 등록을하면, 다시 로그인을 해야합니다. 다시 로그인을 해주는것은 간단하죠?
그러면 아래와 같이 결과적으로 SSH key 가 등록된 모습을 볼 수 있습니다.
앞서 git init 을 통해 로컬 레포지토리를 생성해야 합니다. 생성한 로컬 레포지토리와 연동하는 과정은 간단합니다. 평소 HTTPS 방식으로 연동을 하던 방식과 동일하게 진행해주시면 됩니다.
즉, git remote add origin 명령을 통해 로컬과 원격 레포지토리를 연결해줍시다.
remote 레포지토리의 주소를 아래처럼 카피해줌으로써 local 레포지토리와 연동을 위한 준비를 합니다.
마지막으로 git remote -v 명령을 통해 연결여부를 확인을 해보시고, 정상적으로 주소가 뜬다면 성공입니다🤗