MacOS/맥북 - SSH 공개키 생성하는 방법

반응형

들어가며

개발을 할 때 가장 많이 쓰이는 도구 중 하나가 git 이라고 생각한다.
버전 관리 도구(Version Control System) 이여서 거의 모든 상업적 프로젝트에 사용되기하도, gitVCS 의 최강자로 군림하고 있기 때문이다. (점유율 이 95% 가까웠던 걸로 기억한다.)

git 기반의 서버들은 사용자 권한 을 특정하는 방법으로 SSH 공개 키 방식으로 인증한다.

오늘은 이 SSH 공개 키 를 생성하는 방법을 알아보고자 한다.

SSH 공개키 만들기

1) 현재 공개 키가 있는지 확인

SSH 키 들은 사용자의 ssh 디렉토리 내에 저장된다. 이 디렉토리를 확인하면 된다.

cd ~/.ssh
ls

# 결과
id_rsa      id_rsa.pub  known_hosts

이미 만들어진 SSH 키 가 있는 것을 확인할 수 있다.

id_rsa개인 키 이고, id_rsa.pub공개 키 이다. (pubpublic 의 약자다.)

2) 공개 키 생성하기

MacOS 에는 ssh-keygen 이라는 프로그램을 통해서 키를 생성할 수 있다.
(WindowGit 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 .

레퍼런스

마이크로소프트 SSH 관련 글
git SSH 관련 글
비트버켓 SSH 관련 글

반응형