3.3 SSH 접속을 위한 Key Pair 만들기
서버 인스턴스에 접근하기 위해 패스워드 대신 SSH Key Pair를 사용합니다. Key Pair는 개인키와 공개키로 구성되며, 개인키는 사용자가 사용자의 컴퓨터에 보관하며 공개키는 서버 인스턴스를 만들 때 등록해야 합니다.
Key Pair를 만들기 위해서는 키 생성 도구가 필요하며 없는 경우 설치 후 사용합니다.
- 리눅스/유닉스: ssh-keygen 사용, 미 설치시 OpenSSH(http://www.openssh.com/portable.html) 설치 후 사용
- Windows 10: ssh-keygen 사용
- 그외 Windows: PuTTY 사이트에서(http://www.putty.org/) PuTTY Key Generator(puttygen.exe) 설치 후 사용
- 또는 OCI에서 VM 생성시 자동생성된 것을 다운받아 사용
리눅스/유닉스, Windows 10 환경에서 SSH Key Pair 만들기
-
터미널 또는 Powershell 실행
-
ssh-keygen을 통해 Key Pair를 생성합니다.
명령을 실행하면, 추가적으로 passphrase 값 입력을 요구합니다. 이것은 생성되는 개인 키 파일에 대한 암호로 설정하게 되면, 매번 ssh 접속시 추가적으로 입력을 요구하게 됩니다. 필요 없으면 값을 입력하지 않고 그냥 엔터키를 칩니다.
$ ssh-keygen -t rsa -b 2048 -C "<comment>" -f <output_keyfile>
-
개인키와 공개키가 각각 <output_keyfile>, <output_keyfile>.pub 파일로 생성된 걸 확인할 수 있습니다.
ubuntu@NOTEBOOK-WORK:~$ ssh-keygen -t rsa -b 2048 -C "my ssh key" -f mysshkey Generating public/private rsa key pair. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in mysshkey Your public key has been saved in mysshkey.pub The key fingerprint is: SHA256:iWtp5RtNqW9prdInSQ0rE8PJjivXMdMeY3LuY5EUAkk my ssh key The key's randomart image is: +---[RSA 2048]----+ | .Eo | | . . . | | o o . | | .*.o. | | .oS=o= | | .=O+@ . | | =o+#.B | | .oo o+% o | | o .*+= | +----[SHA256]-----+
윈도우즈 환경에서 SSH Key Pair 만들기
-
내려받아 설치한 puttygen.exe 실행
-
키 타입을 기본 RSA로 선택하고, 비트 수를 2048로 설정
-
Generate 클릭
-
무작위 데이터를 생성하기 위해 진행 바가 끝까지 갈 때 까지 가운데 빈 화면에서 마우스를 이리저리 움직입니다.
-
생성 완료
-
Key comment: 필요하면 수정
-
Key passphrase: 개인 키 파일에 대한 암호로 ssh 접속시 입력을 요구하게 됩니다. 필요 없으면 값을 입력하지 않고 그냥 엔터키를 칩니다.
-
Putty 전용 형식으로 개인 키 저장
Save private key 클릭, 프롬프트가 뜨면 passphrase 없이 키 저장하도록 예(Y) 선택 후 파일 저장
이때 저장되는 개인 키는 PuTTY Private Key (PPK) 형식으로 저장되어 PuTTY 에서만 사용 가능합니다.
-
PEM 형식으로 개인 키 저장
SSH를 통해 Compute VM으로 접속시에는 PEM 형식 키를 일반적으로 사용됩니다.
메뉴에서 Conversions > Export OpenSSH Key 선택합니다. 프롬프트가 뜨면 passphrase 없이 키 저장하도록 예(Y) 선택 후 파일 저장
- 예시(mysshkey)
-----BEGIN RSA PRIVATE KEY----- MIIEpQIBAAKCAQEArKWHqta/NDy9DsuBpq4SSiS+p3VfUk96la8Q+/LgSJRU+RPI ... HCSSOnUJxQR3xDOnrz4ywSh1bheoxUUjaHI1PtxTQtcNWHW7K2hPblE= -----END RSA PRIVATE KEY-----
-
공개 키 저장
표시된 공개키 문자를 모두 복사하여 개인키가 저장된 위치에 파일로 저장합니다. ssh-keygen에서 생성되는 포맷과 동일하게 공개키의 이름은 개인키 이름과 같게 하고, 확장자만 .pub로 변경하여 저장합니다.
OCI에서는 OpenSSH 형식을 지원하나, “Save public key"은 OpenSSH 형식으로 저장되지 않으므로 사용하지 않습니다.
- 예시(mysshkey.pub)
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCspYeq1r80PL0Oy4GmrhJKJL6ndV9ST3qVrxD78uBIlFT5E8gV+lbDma+aZN6QpYRTboccyngd5.........qeL5YOmSw2p7Uu5kqflg+45xP3cbm42R1zMLFs81a2+5vHy/nSV523el1 rsa-key-20220110
-
파일 경로와 파일명을 확인 후 공개키는 Compute Instance 생성시, 개인키는 SSH로 Instance 접속시 사용합니다.
이 글은 개인으로서, 개인의 시간을 할애하여 작성된 글입니다. 글의 내용에 오류가 있을 수 있으며, 글 속의 의견은 개인적인 의견입니다.