TheKoguryo's 기술 블로그

 Version 2024-11-29

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