

# SSH 클라이언트를 사용하여 Linux 인스턴스에 연결
<a name="connect-linux-inst-ssh"></a>

Secure Shell(SSH)을 사용하여 로컬 컴퓨터에서 Linux 인스턴스에 연결할 수 있습니다. 기타 옵션에 대한 자세한 내용은 [EC2 인스턴스에 연결](connect.md)의 내용을 참조하세요.

**참고**  
인스턴스에 연결하려고 시도하는 동안 오류가 발생하는 경우 인스턴스가 모든 [SSH 연결 사전 조건](#ssh-prereqs-linux-from-linux-macos)을(를) 충족하는지 확인하세요. 모든 사전 조건을 충족하는데도 여전히 Linux 인스턴스에 연결할 수 없는 경우 [Amazon EC2 Linux 인스턴스 연결 문제 해결](TroubleshootingInstancesConnecting.md)을(를) 참조하세요.

**Topics**
+ [SSH 연결 사전 조건](#ssh-prereqs-linux-from-linux-macos)
+ [SSH 클라이언트를 사용하여 Linux 인스턴스에 연결](#connect-linux-inst-sshClient)

## SSH 연결 사전 조건
<a name="ssh-prereqs-linux-from-linux-macos"></a>

SSH를 사용하여 Linux 인스턴스에 연결하려면 먼저 다음 작업을 완료하세요.

**일반적인 사전 조건을 완료하세요.**  
+ 인스턴스가 상태 확인을 통과했는지 확인합니다. 인스턴스가 연결 요청을 수락할 준비가 될 때까지 몇 분 정도 걸릴 수 있습니다. 자세한 내용은 [상태 확인 보기](viewing_status.md) 섹션을 참조하세요.
+ [필수 인스턴스 세부 정보 가져오기](connection-prereqs-general.md#connection-prereqs-get-info-about-instance).
+ [프라이빗 키 찾기 및 권한 설정](connection-prereqs-general.md#connection-prereqs-private-key).
+ [(선택 사항) 인스턴스 지문 가져오기](connection-prereqs-general.md#connection-prereqs-fingerprint).

**IP 주소에서의 인바운드 SSH 트래픽을 허용합니다.**  
인스턴스와 연관된 보안 그룹이 IP 주소로부터 들어오는 SSH 트래픽을 허용하는지 확인하세요. 자세한 내용은 [컴퓨터에서 인스턴스 연결에 대한 규칙](security-group-rules-reference.md#sg-rules-local-access) 섹션을 참조하세요.

**(필요한 경우) 로컬 컴퓨터에 SSH 클라이언트를 설치합니다.**  
로컬 컴퓨터에 기본적으로 SSH 클라이언트가 설치되어 있을 수 있습니다. 터미널 창에 다음 명령을 입력하여 이를 확인할 수 있습니다. 컴퓨터가 명령을 인식하지 않는다면 SSH 클라이언트를 설치해야 합니다.  

```
ssh
```
다음은 Windows에서 사용할 수 있는 몇 가지 옵션입니다. 컴퓨터가 다른 운영 체제를 실행하는 경우 해당 운영 체제 설명서에서 SSH 클라이언트 옵션을 참조하세요.

## Windows에서 OpenSSL 설치
<a name="openssh"></a>

Windows에서 OpenSSH를 설치한 후 SSH를 사용하여 Windows 컴퓨터에서 Linux 인스턴스에 연결할 수 있습니다. 시작하기 전에 다음 요구 사항을 충족하는지 확인하세요.

**Windows 버전**  
컴퓨터의 Windows 버전이 Windows Server 2019 이후 버전이어야 합니다.  
이전 버전의 경우 [Win32-OpenSSH](https://github.com/PowerShell/Win32-OpenSSH/wiki)를 다운로드하고 설치하세요.

**PowerShell 요구 사항**  
PowerShell을 사용하여 Windows OS에 OpenSSH를 설치하려면 PowerShell 버전 5.1 이상을 실행해야 하며 계정은 기본 제공 관리자 그룹의 멤버여야 합니다. PowerShell에서 `$PSVersionTable.PSVersion`을 실행하여 PowerShell 버전을 확인합니다.  
기본 제공 관리자 그룹의 멤버인지 확인하려면 다음 PowerShell 명령을 실행합니다.  

```
(New-Object Security.Principal.WindowsPrincipal([Security.Principal.WindowsIdentity]::GetCurrent())).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
```
기본 제공 관리자 그룹의 멤버인 경우 출력은 `True`입니다.

PowerShell을 사용하여 Windows용 OpenSSH를 설치하려면 다음 PowerShell 명령을 실행합니다.

```
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
```

출력의 예시는 다음과 같습니다.

```
Path          :
Online        : True
RestartNeeded : False
```

PowerShell을 사용하여 Windows에서 OpenSSH를 제거하려면 다음 PowerShell 명령을 실행합니다.

```
Remove-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
```

출력의 예시는 다음과 같습니다.

```
Path          :
Online        : True
RestartNeeded : True
```

## Windows Subsystem for Linux(WSL) 설치
<a name="WSL"></a>

Windows에서 WSL을 설치한 후 SSH 클라이언트와 같은 Linux 명령줄 도구를 사용하여 Windows 컴퓨터에서 Linux 인스턴스에 연결할 수 있습니다.

[EC2 Windows 인스턴스에 Windows Subsystem for Linux 설치](install-wsl-on-ec2-windows-instance.md)의 지침을 따르세요. Microsoft의 설치 설명서의 지침을 따르면 Linux의 Ubuntu 배포판이 설치됩니다. 원하는 경우 다른 Linux 배포판을 설치할 수 있습니다.

WSL 터미널 창에서 인스턴스 시작 시 지정한 키 페어에 대한 `.pem` 파일을 Windows에서 WSL로 복사합니다. 인스턴스에 연결할 때는 WSL에서 `.pem` 파일의 정규화된 경로를 확인하세요. Windows 하드 드라이브로 가는 경로의 지정 방식은 [C 드라이브 액세스 방법](https://learn.microsoft.com/en-us/windows/wsl/faq#how-do-i-access-my-c--drive-)을 참고하십시오.

```
cp /mnt/<Windows drive letter>/path/my-key-pair.pem ~/WSL-path/my-key-pair.pem
```

Windows Subsystem for Linux의 제거 방법은 [WSL 배포 제거 방법](https://learn.microsoft.com/en-us/windows/wsl/faq#how-do-i-uninstall-a-wsl-distribution-)을 참조하세요.

## SSH 클라이언트를 사용하여 Linux 인스턴스에 연결
<a name="connect-linux-inst-sshClient"></a>

SSH 클라이언트를 사용하여 Linux 인스턴스에 연결하려면 다음 프로시저를 사용하세요.

**SSH 클라이언트를 사용하여 인스턴스에 연결**

1. 컴퓨터에서 터미널 창을 엽니다.

1. **ssh** 명령을 사용하여 인스턴스에 연결합니다. 사전 조건의 일부로 수집한 인스턴스에 대한 세부 정보가 필요합니다. 예를 들어 프라이빗 키(`.pem` 파일)의 위치, 사용자 이름 및 퍼블릭 DNS 이름 또는 IPv6 주소가 필요합니다. 다음은 예제 명령입니다.
   + (퍼블릭 DNS) 퍼블릭 DNS 이름을 사용하려면 다음 명령을 입력합니다.

     ```
     ssh -i /path/key-pair-name.pem instance-user-name@instance-public-dns-name
     ```
   + (IPv6) 또는 인스턴스에 IPv6 주소가 있는 경우 다음 명령을 입력하여 IPv6 주소를 사용합니다.

     ```
     ssh -i /path/key-pair-name.pem instance-user-name@2001:db8::1234:5678:1.2.3.4
     ```

   다음은 응답의 예입니다.

   ```
   The authenticity of host 'ec2-198-51-100-1.compute-1.amazonaws.com (198-51-100-1)' can't be established.
   ECDSA key fingerprint is l4UB/neBad9tvkgJf1QZWxheQmR59WgrgzEimCG6kZY.
   Are you sure you want to continue connecting (yes/no)?
   ```

1. (선택 사항) 보안 알림의 지문이 일치하는지 확인합니다. 이들 지문이 일치하지 않으면 누군가가 메시지 가로채기(man-in-the-middle) 공격을 시도하고 있는 것일 수 있습니다. 이들 지문이 일치하면 다음 단계를 계속 진행합니다. 자세한 내용은 [인스턴스 지문 가져오기](connection-prereqs-general.md#connection-prereqs-fingerprint)를 참조하세요.

1. **yes**를 입력합니다.

   다음과 같은 응답이 표시됩니다:

   ```
   Warning: Permanently added 'ec2-198-51-100-1.compute-1.amazonaws.com' (ECDSA) to the list of known hosts.
   ```