

# 키 페어 설명
<a name="describe-keys"></a>

Amazon EC2에 저장된 키 페어를 설명할 수 있습니다. 퍼블릭 키 구성 요소를 검색하고 시작 시 지정되었던 공개 키를 식별할 수도 있습니다.

**Topics**
+ [키 페어 설명](#describe-public-key)
+ [퍼블릭 키 구성 요소 검색](#retrieving-the-public-key)
+ [시작 시 지정된 퍼블릭 키 식별](#identify-key-pair-specified-at-launch)

## 키 페어 설명
<a name="describe-public-key"></a>

Amazon EC2 저장된 퍼블릭 키에 대한 정보를 볼 수 있으며, 이러한 정보에는 퍼블릭 키 이름, ID, 키 유형, 지문, 퍼블릭 키 구성 요소, 키가 Amazon EC2에서 생성된 날짜 및 시간(UTC 표준 시간대. 키가 서드 파티 도구에 의해 생성된 경우에는 키를 Amazon EC2로 가져온 날짜 및 시간), 퍼블릭 키와 연결된 모든 태그가 포함됩니다.

------
#### [ Console ]

**키 페어에 대한 정보를 보는 방법**

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)에서 Amazon EC2 콘솔을 엽니다.

1. 왼쪽 탐색에서 **키 페어(Key Pairs)**를 선택합니다.

1. **키 페어(Key pairs)** 테이블에서 각 퍼블릭 키에 대한 정보를 볼 수 있습니다.  
![키 페어 테이블입니다.](http://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/images/key-pairs-describe-console.png)

1. 퍼블릭 키의 태그를 보려면 키 옆에 있는 확인란을 선택한 다음 **작업**, **태그 관리**를 선택합니다.

------
#### [ AWS CLI ]

**키 페어에 대한 정보를 보는 방법**  
[https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-key-pairs.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-key-pairs.html) 명령을 사용합니다.

```
aws ec2 describe-key-pairs --key-names {{key-pair-name}}
```

------
#### [ PowerShell ]

**키 페어에 대한 정보를 보는 방법**  
[https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2KeyPair.html](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2KeyPair.html) cmdlet을 사용하세요.

```
Get-EC2KeyPair -KeyName {{key-pair-name}}
```

------

## 퍼블릭 키 구성 요소 검색
<a name="retrieving-the-public-key"></a>

키 페어에 대한 퍼블릭 키 구성 요소를 가져올 수 있습니다. 다음은 퍼블릭 키 예제입니다. 참고로, 가독성을 위해 줄 바꿈이 추가되어 있습니다.

```
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQClKsfkNkuSevGj3eYhCe53pcjqP3maAhDFcvBS7O6V
hz2ItxCih+PnDSUaw+WNQn/mZphTk/a/gU8jEzoOWbkM4yxyb/wB96xbiFveSFJuOp/d6RJhJOI0iBXr
lsLnBItntckiJ7FbtxJMXLvvwJryDUilBMTjYtwB+QhYXUMOzce5Pjz5/i8SeJtjnV3iAoG/cQk+0FzZ
qaeJAAHco+CY/5WrUBkrHmFJr6HcXkvJdWPkYQS3xqC0+FmUZofz221CBt5IMucxXPkX4rWi+z7wB3Rb
BQoQzd8v7yeb7OzlPnWOyN0qFU0XA246RA8QFYiCNYwI3f05p6KLxEXAMPLE
```

------
#### [ Private key ]

**ssh-keygen을 사용하여 퍼블릭 키 구성 요소를 검색하는 방법(Linux)**  
로컬 Linux 또는 macOS 컴퓨터에서 **ssh-keygen** 명령을 사용합니다. 프라이빗 키(`.pem` 파일)를 다운로드한 경로를 지정합니다.

```
ssh-keygen -y -f /{{path_to_key_pair}}/{{my-key-pair}}.pem
```

이 **ssh-keygen** 명령이 작동하지 않으면 다음 **chmod** 명령을 실행하여 프라이빗 키 파일에 필요한 권한이 있는지 확인합니다.

```
chmod 400 {{key-pair-name}}.pem
```

**PuTTYgen을 사용하여 퍼블릭 키 구성 요소를 검색하는 방법(Windows)**  
로컬 Windows 컴퓨터에서 PuTTYgen을 시작합니다. **로드(Load)**를 선택합니다. `.ppk` 또는 `.pem` 프라이빗 키 파일을 선택합니다. PuTTYgen의 **OpenSSH authorized\_keys 파일에 붙여 넣기 위한 퍼블릭 키** 아래에 퍼블릭 키가 표시됩니다. 또한 **퍼블릭 키 저장**을 선택하고, 파일 이름을 지정한 다음, 파일을 저장하고, 파일을 열어서 퍼블릭 키를 볼 수도 있습니다.

------
#### [ AWS CLI ]

**퍼블릭 키 구성 요소를 검색하는 방법**  
다음 [describe-key-pairs](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-key-pairs.html) 명령을 사용하고 `--include-public-key` 옵션을 지정합니다.

```
aws ec2 describe-key-pairs \
    --key-names {{key-pair-name}} \
    --include-public-key \
    --query "KeyPairs[].PublicKey"
```

------
#### [ PowerShell ]

**퍼블릭 키 구성 요소를 검색하는 방법**  
[Get-EC2KeyPair](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2KeyPair.html) cmdlet을 사용합니다.

```
(Get-EC2KeyPair -KeyName {{key-pair-name}} -IncludePublicKey $true).PublicKey
```

------
#### [ IMDSv2 ]

**Linux**  
Linux 인스턴스에서 다음과 같은 명령을 실행합니다.

```
TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \
&& curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key
```

**Windows**  
Windows 인스턴스에서 다음과 같은 cmdlet을 실행합니다.

```
[string]$token = Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token-ttl-seconds" = "21600"} -Method PUT -Uri http://169.254.169.254/latest/api/token
```

```
Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token" = $token} -Method GET -Uri http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key
```

------
#### [ IMDSv1 ]

**Linux**  
Linux 인스턴스에서 다음 명령을 실행합니다.

```
curl http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key
```

**Windows**  
Windows 인스턴스에서 다음 cmdlet을 실행합니다.

```
Invoke-RestMethod -uri  http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key
```

------

## 시작 시 지정된 퍼블릭 키 식별
<a name="identify-key-pair-specified-at-launch"></a>

인스턴스를 시작할 때 퍼블릭 키를 지정하면 인스턴스를 통해 퍼블릭 키 이름이 기록됩니다. 인스턴스에 대해 보고된 퍼블릭 키 이름은 인스턴스의 퍼블릭 키를 변경하거나 퍼블릭 키를 추가하더라도 변경되지 않습니다.

------
#### [ Console ]

**시작 시 지정된 퍼블릭 키를 식별하는 방법**

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)에서 Amazon EC2 콘솔을 엽니다.

1. 탐색 창에서 **인스턴스**를 선택합니다.

1. 인스턴스를 선택합니다.

1. **세부 정보** 탭의 **인스턴스 세부 정보**에서 **시작 시 할당된 키 페어**를 찾습니다.

------
#### [ AWS CLI ]

**시작 시 지정된 퍼블릭 키를 식별하는 방법**  
다음 [describe-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html) 명령을 사용합니다.

```
aws ec2 describe-instances \
    --instance-id {{i-1234567890abcdef0}} \
    --query "Reservations[].Instances[].KeyName" \
    --output text
```

다음은 예제 출력입니다.

```
key-pair-name
```

------
#### [ PowerShell ]

**시작 시 지정된 퍼블릭 키를 식별하는 방법**  
[Get-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Instance.html) cmdlet을 사용합니다.

```
(Get-EC2Instance -InstanceId {{i-1234567890abcdef0}}).Instances | Select KeyName
```

다음은 예제 출력입니다.

```
KeyName
-------
key-pair-name
```

------