Git 원격 저장소에 push, pull 할 때 매번 패스워드를 묻는 과정, 토큰 키를 입력하는 과정은 매우 번거롭게 때문에 이번에는 SSH key를 활용하여 이를 생략하여 시간을 단축하는 방법을 말씀드리겠습니다.
나아가 보통 회사, 개인 계정의 git hub 계정을 가지고 계실텐데 여러개의 계정을 ssh key로 관리할지도 알아보겠습니다.
SSH key?
public network를 통해 통신을 할 때 보안을 유지하기 위해 사용하는 암호화된 원격 접속 프로토콜입니다.
거두절미하고 사용방법을 알아보겠습니다.
SSH key generation
mkdir ~/.ssh # chmod 700 ~/.ssh # cd ~/.ssh
chmod 700 ~/.ssh.
cd ~/.ssh
.ssh폴더를 만들고 나서는 아래의 명령어를 통해 key를 생성합니다.
ssh-keygen -t rsa -b 4096 -C "yourEmail@example.com"
이 후 나오는 물음에는 모두 Enter 키를 입력합니다.
생성되었으면 github홈페이지에서 SSH key파일을 등록합니다.
Title에는 원하시는 키이름을 입력하시고, key입력란에는
cat ~/.ssh/id_rsa.pub 명령어를 통해 나온 값들을 복사하여 붙여넣습니다.
이 후에는 위의 그림과 같이 ssh을 이용하여 remote연결을 합니다.
git clone <복사>
혹은
git remote add origin git@github.com:[계정명]/[저장소명].git
여러 SSH key 등록
이번에는 여러 SSH key등록에 관해 알아보겠습니다.
$ ssh-keygen -t rsa -C "your_email@example.com"
한 번더 위의 명령어를 통해 key를 생성합니다.
이번에는 대신 무조건 Enter를 입력하지 말고 이름을 바꾸도록 합니다.
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):id_rsa_<USER>
이제 생성된 키를 앞서와 마찬가지로 github에 공개키 등록을 합니다.
cat ~/.ssh/id_rsa_<USER>.pub 명령어를 통해 나온 값을 앞서와 다른 계정의 github에 공개키등록을 합니다.
◆이제 여기서 중요합니다. ssh config 설정을 해야합니다.
~/.ssh/에 config파일을 만듭니다. (i.e. gedit ~/.ssh/config)
아래와 같이 입력합니다.
#계정1
Host <USER1>.github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa
#계정2
Host <USER2>.github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_<USER>
사용방법
# USER1계정으로 인증하여 연동하고 싶은경우
git remote set-url origin git@<USER1>.github.com:User/UserRepo.git
git clone git@<USER1>.github.com:project/project.github.io.git
이상입니다. 한번의 세팅으로 개발시간을 아껴보세요!