Github sshkey로 계정 연결하기
SSH-key를 이용해서 git-repo 사용하기...
Github을 사용하다보면 보면 username, password를 계속 입력하기 싫어서 config에 Setting하게 되는 데, 이보다 더 안정적으로 매번 password를 입력하는 불편함 없이 사용하기 위해 ssh-key를 이용해서 설정하는 방법을 기록해둔다.
ssh-key 생성
$> ssh-keygen
명령을 수행하면 Key이름을 설정할 수 있고 (하지 않을 경우 id_rsa로 생성) passphrase (https://www.ssh.com/ssh/passphrase)는는)%EB%8A%94) private key의 유출 및 탈취 상황을 대비하기 위해 encryption 하는 방식인데, 여기선 입력하지 않는 걸로...
키를 생성하게 되면 $HOME 밑에 .ssh/ 아래에 id_rsa, id_rsa.pub (다른 이름을 입력했을 경우 해당 이름) 키가 생성된다.
생성된 Public key, Private key는 항상 세트로 움직여야하고
Public key는 이름 답게 외부에 Open하는 키 이다. SSH로 접속할 서버에 보통 등록을 해두게 되고, 그에 대응하는 Private key는 절대 유출되어서는 안되며, Public key를 등록해놓은 곳에 접속할 때 자신을 인증하는 용도로 사용되어 진다.
그럼 이제 이 Public key를 Github에 먼저 등록하러 가보자.
Github에 Public key 등록하기
위의 계정내 Settings로 진입하게 되면 "SSH and GPG Keys"
에서 New SSH key를 입력한다음, Public key의 내용을 복사해서 입력하면 된다.
cat ./id_rsa.pub
- 등록된 상태
ssh config 설정
$HOME 아래에 .ssh directory 밑에 config파일 설정을 해야한다.
```
Host github.com
HostName github.com
User Username
IdentityFile /home/someuser/.ssh/id_rsa
Host github.com
HostName github.com
User Username2
IdentityFile /home/someuser/.ssh/id2_rsa
```
위와 같이 설정하게 되면 ssh로 github.com 도메인으로 접속할 경우
설정된 IdentitiFile (key)와 User ID를 이용해서 로그인을 하게 된다. 보는 바와 같이 Username을 다르게 해서 User에 따라 키를 다르게 사용할 수도 있고, Repo를 Github, Gitlab 어느 host로 접속하게 되는 가에 따라 다른 키를 자동으로 매핑되도록 관리해줄 수 있다.
Git repo
Git에서 Repo를 Clone할때 SSH를 이용해서 Clone을 하자.
Clone 후 해당 Repo에 .git/config 파일을 살펴보면,
[remote] 에 https로 되어있으면, push를 할 때 ssh로 설정으로 동작되지 않을 수 있기 때문에 ssh 주소를 사용하자,
참고로 ssh config에 Multiuser를 설정해 놓을 경우 각 Repo 안에 어떤 User의 정보를 사용할지를 판단할 수 있는 정보가 들어있다.
댓글