MacOS/맥북 - SSH 공개키 생성하는 방법
들어가며
개발을 할 때 가장 많이 쓰이는 도구 중 하나가 git
이라고 생각한다.버전 관리 도구(Version Control System)
이여서 거의 모든 상업적 프로젝트에 사용되기하도, git
이 VCS
의 최강자로 군림하고 있기 때문이다. (점유율 이 95% 가까웠던 걸로 기억한다.)
git
기반의 서버들은 사용자 권한
을 특정하는 방법으로 SSH 공개 키
방식으로 인증한다.
오늘은 이 SSH 공개 키
를 생성하는 방법을 알아보고자 한다.
SSH 공개키 만들기
1) 현재 공개 키가 있는지 확인
SSH 키
들은 사용자의 ssh
디렉토리 내에 저장된다. 이 디렉토리를 확인하면 된다.
cd ~/.ssh
ls
# 결과
id_rsa id_rsa.pub known_hosts
이미 만들어진 SSH 키
가 있는 것을 확인할 수 있다.
id_rsa
는 개인 키
이고, id_rsa.pub
는 공개 키
이다. (pub
는 public
의 약자다.)
2) 공개 키 생성하기
MacOS
에는 ssh-keygen
이라는 프로그램을 통해서 키를 생성할 수 있다.
(Window
는 Git for Windows
에 있다고 하지만, Window 유저가 아니여서 이 부분은 생략하겠다.)
명령어는 프로그램 이름과 동일한 ssh-keygen
이다.
공개 키
를 생성해보자.
ssh-keygen -t rsa -C "user@email.com" -f ~/.ssh/test-path
-t
옵션은 SSH 키
의 타입을 지정하는 것으로 rsa
방식으로 작성했으며, -C
옵션은 주석을 의미하는 것으로, 사용자의 이메일 주소
로 유니크한 값에 가깝기 때문에 키를 판단하기 좋아서
작성했다. -f
옵션은 SSH 키
가 생성될 디렉토리를 지정하는 것이다. 단, 디렉토리는 미리 존재해야한다.
다음은 예제 스크립트이다.
ssh-keygen -t rsa -C "test" -f ~/.ssh/test-key
위의 내용으로 생성할 경우 rsa
타입이면서 test
라는 주석이 달린 SSH 키
가 ssh/test-key
디렉토리에 생성될 것이다.
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/space.developher/.ssh/test-key
Your public key has been saved in /Users/space.developher/.ssh/test-key.pub
The key fingerprint is:
SHA256:QIZ4/sD2 ...생략... SX3in/Os test
The key's randomart image is:
+---[RSA 3072]----+
| ..+=..+o |
| . o+o.o oo. |
| + ..o.+.oo |
| = o.o.+o |
| . = oSo .o |
| . o o o. |
| . . .o .. |
| o*.++.. |
| ..XBE+ |
+----[SHA256]-----+
생성되었는지 확인해보자
cd ~/.ssh
ls
# 결과
id_rsa id_rsa.pub known_hosts test-key test-key.pub
정상적으로 생성된 것을 확인할 수 있다.
3) 공개키 복사하기
# 1. 직접 복사
아래 명령어를 이용하면 생성한 SSH 공개 키
에 접근할 수 있다.
cat ~/.ssh/test-key.pub
파일에 접근하면 아래와 같이 공개 키
를 확인할 수 있다.
ssh-rsa AAAAB3NzaC1yc2E/... 생략 ... tal+gMyda8g28D1k/dyRrjFXE= test
가장 마지막의 test
라는 텍스트는 -C
옵션으로 달았던 주석이다.
위의 키값을 직접 복사하는 방법이 있다.
# 2. 명령어를 통한 복사
아래의 두 명령어 모두 복사하는 스크립트이다. 둘 중에 아무거나 사용하면 된다.
첫번째
pbcopy < ~/.ssh/test-key.pub
두번쨰
cat ~/.ssh/test-key.pub | pbcopy .