TheKoguryo's 기술 블로그

 Version 2024.04.01

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 만들기

  1. 터미널 또는 Powershell 실행

  2. ssh-keygen을 통해 Key Pair를 생성합니다.

    명령을 실행하면, 추가적으로 passphrase 값 입력을 요구합니다. 이것은 생성되는 개인 키 파일에 대한 암호로 설정하게 되면, 매번 ssh 접속시 추가적으로 입력을 요구하게 됩니다. 필요 없으면 값을 입력하지 않고 그냥 엔터키를 칩니다.

    $ ssh-keygen -t rsa -b 2048 -C "<comment>" -f <output_keyfile>
    
  3. 개인키와 공개키가 각각 <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 만들기

  1. 내려받아 설치한 puttygen.exe 실행

  2. 키 타입을 기본 RSA로 선택하고, 비트 수를 2048로 설정

    image-20220110125509163

  3. Generate 클릭

  4. 무작위 데이터를 생성하기 위해 진행 바가 끝까지 갈 때 까지 가운데 빈 화면에서 마우스를 이리저리 움직입니다.

    image-20220110125958401

  5. 생성 완료

    image-20220110130036486

  6. Key comment: 필요하면 수정

  7. Key passphrase: 개인 키 파일에 대한 암호로 ssh 접속시 입력을 요구하게 됩니다. 필요 없으면 값을 입력하지 않고 그냥 엔터키를 칩니다.

  8. Putty 전용 형식으로 개인 키 저장

    Save private key 클릭, 프롬프트가 뜨면 passphrase 없이 키 저장하도록 예(Y) 선택 후 파일 저장

    이때 저장되는 개인 키는 PuTTY Private Key (PPK) 형식으로 저장되어 PuTTY 에서만 사용 가능합니다.

  9. PEM 형식으로 개인 키 저장

    SSH를 통해 Compute VM으로 접속시에는 PEM 형식 키를 일반적으로 사용됩니다.

    메뉴에서 Conversions > Export OpenSSH Key 선택합니다. 프롬프트가 뜨면 passphrase 없이 키 저장하도록 예(Y) 선택 후 파일 저장

    image-20220110141447842

    • 예시(mysshkey)
    -----BEGIN RSA PRIVATE KEY-----
    MIIEpQIBAAKCAQEArKWHqta/NDy9DsuBpq4SSiS+p3VfUk96la8Q+/LgSJRU+RPI
    ...
    HCSSOnUJxQR3xDOnrz4ywSh1bheoxUUjaHI1PtxTQtcNWHW7K2hPblE=
    -----END RSA PRIVATE KEY-----
    
  10. 공개 키 저장

    image-20220110130444397

    표시된 공개키 문자를 모두 복사하여 개인키가 저장된 위치에 파일로 저장합니다. ssh-keygen에서 생성되는 포맷과 동일하게 공개키의 이름은 개인키 이름과 같게 하고, 확장자만 .pub로 변경하여 저장합니다.

    OCI에서는 OpenSSH 형식을 지원하나, “Save public key"은 OpenSSH 형식으로 저장되지 않으므로 사용하지 않습니다.

    • 예시(mysshkey.pub)
    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCspYeq1r80PL0Oy4GmrhJKJL6ndV9ST3qVrxD78uBIlFT5E8gV+lbDma+aZN6QpYRTboccyngd5.........qeL5YOmSw2p7Uu5kqflg+45xP3cbm42R1zMLFs81a2+5vHy/nSV523el1 rsa-key-20220110
    
  11. 파일 경로와 파일명을 확인 후 공개키는 Compute Instance 생성시, 개인키는 SSH로 Instance 접속시 사용합니다.



이 글은 개인으로서, 개인의 시간을 할애하여 작성된 글입니다. 글의 내용에 오류가 있을 수 있으며, 글 속의 의견은 개인적인 의견입니다.

Last updated on 10 Jan 2022