메뉴
Amazon Elastic Compute Cloud
User Guide for Linux Instances

PuTTY를 사용하여 Windows에서 Linux 인스턴스에 연결

인스턴스를 시작한 후 인스턴스에 연결하고 바로 앞에 있는 컴퓨터를 사용하는 것처럼 인스턴스를 사용할 수 있습니다.

참고

인스턴스를 시작한 후, 연결할 수 있도록 인스턴스가 준비될 때까지 몇 분 정도 걸릴 수 있습니다. 인스턴스가 상태 확인을 통과했는지 확인하십시오. [Instances] 페이지의 [Status Checks] 열에서 이 정보를 볼 수 있습니다.

다음 지침에서는 Windows용 무료 SSH 클라이언트인 PuTTY를 사용하여 인스턴스에 연결하는 방법을 설명합니다. 인스턴스에 연결을 시도하는 동안 오류가 발생한 경우 인스턴스 연결 문제 해결을 참조하십시오.

사전 조건

PuTTY을(를) 사용하여 Linux 인스턴스에 연결하려면 먼저 다음 사전 요구 사항을 완료하십시오.

  • PuTTY 설치

    PuTTY 다운로드 페이지에서 PuTTY를 다운로드하여 설치합니다. 이미 이전 버전의 PuTTY가 설치되어 있다면 최신 버전을 다운로드하는 것이 좋습니다. 전체 제품군을 설치해야 합니다.

  • 인스턴스의 ID 보기

    Amazon EC2 콘솔을 사용하여 인스턴스의 ID를 볼 수 있습니다([Instance ID] 열에서). describe-instances(AWS CLI) 또는 Get-EC2Instance(Windows PowerShell용 AWS 도구) 명령을 사용할 수도 있습니다.

  • 인스턴스의 퍼블릭 DNS 이름 보기

    Amazon EC2 콘솔을 사용해서 사용자의 인스턴스에 대한 퍼블릭 DNS를 얻을 수 있습니다([Public DNS (IPv4)] 열 확인. 이 열이 숨겨진 경우는 [Show/Hide] 아이콘을 클릭하고 [Public DNS (IPv4)]를 선택). describe-instances(AWS CLI) 또는 Get-EC2Instance(Windows PowerShell용 AWS 도구) 명령을 사용할 수도 있습니다.

  • (IPv6 전용) 인스턴스의 IPv6 주소를 얻습니다.

    인스턴스에 IPv6 주소를 할당했다면 퍼블릭 IPv4 주소나 퍼블릭 IPv4 DNS 호스트 이름 대신 IPv6 주소를 사용하여 인스턴스에 연결할 수도 있습니다. 로컬 컴퓨터에 IPv6 주소가 있고 IPv6를 사용하도록 컴퓨터를 구성해야 합니다. Amazon EC2 콘솔을 사용하여 인스턴스의 IPv6 주소를 얻을 수 있습니다([IPv6 IPs] 필드 확인). describe-instances(AWS CLI) 또는 Get-EC2Instance(Windows PowerShell용 AWS 도구) 명령을 사용할 수도 있습니다. IPv6에 대한 자세한 내용은 IPv6 주소 단원을 참조하십시오.

  • 프라이빗 키 찾기

    인스턴스를 시작할 때 지정한 키 페어를 찾기 위해 .pem 파일의 컴퓨터 상 위치에 대한 정규화된 경로를 얻습니다.

  • IP 주소에서 인스턴스로의 인바운드 SSH 트래픽 활성화

    인스턴스와 연관된 보안 그룹이 IP 주소로부터 들어오는 SSH 트래픽을 허용하는지 확인하십시오. 기본 보안 그룹은 기본적으로 들어오는 SSH 트래픽을 허용하지 않습니다. 자세한 내용은 Linux 인스턴스의 인바운드 트래픽 권한 부여 단원을 참조하십시오.

PuTTYgen을 사용하여 프라이빗 키 변환

PuTTY에서는 Amazon EC2에서 생성된 프라이빗 키 형식(.pem)을 기본적으로 지원하지 않습니다. PuTTY에는 PuTTYgen이라는 도구가 있는데, 이 도구는 키를 필요한 PuTTY 형식(.ppk)으로 변환할 수 있습니다. PuTTY를 사용하여 인스턴스에 연결하기 전에 프라이빗 키를 이 형식(.ppk)으로 변환해야 합니다.

개인 키를 변환하려면

  1. PuTTYgen을 시작합니다(예: [Start] 메뉴에서 [All Programs > PuTTY > PuTTYgen] 선택).

  2. Type of key to generate에서 RSA를 선택합니다.

     PuTTYgen의 RSA 키

    이전 버전의 PuTTYgen을 사용하는 경우 [SSH-2 RSA]를 선택합니다.

  3. Load를 선택합니다. 기본적으로 PuTTYgen에는 확장명이 .ppk인 파일만 표시됩니다. .pem 파일을 찾으려면 모든 유형의 파일을 표시하는 옵션을 선택합니다.

     모든 파일 유형 선택
  4. 인스턴스를 시직할 때 지정한 키 페어에 대한 .pem 파일을 선택한 다음 [Open]을 선택합니다. [OK]를 선택하여 확인 대화 상자를 닫습니다.

  5. [Save private key]를 선택하여 PuTTY에서 사용할 수 있는 형식으로 키를 저장합니다. PuTTYgen에서 암호 없이 키 저장에 대한 경고가 표시됩니다. Yes를 선택합니다.

    참고

    프라이빗 키의 암호는 추가 보호 계층이므로 프라이빗 키가 공개되었더라도 이 암호가 없으면 사용할 수 없습니다. 암호문 사용의 단점은 인스턴스에 로그온하거나 인스턴스에 파일을 복사하기 위해 사용자가 개입해야 하기 때문에 자동화를 어렵게 만든다는 것입니다.

  6. 키 페어에 사용된 키에 대해 동일한 이름을 지정합니다(예: my-key-pair). PuTTY가 자동으로 .ppk 파일 확장자를 추가합니다.

이제 개인 키가 PuTTY에 사용하기에 올바른 형식으로 되어 있으므로 PuTTY의 SSH 클라이언트를 사용하여 인스턴스에 연결할 수 있습니다.

PuTTY 세션 시작

PuTTY을(를) 사용하여 Linux 인스턴스에 연결하려면 다음 프로시저를 사용하십시오. 프라이빗 키에 대해 생성한 .ppk 파일이 필요합니다. 인스턴스에 연결을 시도하는 동안 오류가 발생한 경우 인스턴스 연결 문제 해결을 참조하십시오.

PuTTY 세션을 시작하려면

  1. (선택 사항) 로컬 시스템에서(인스턴스가 아님) get-console-output (AWS CLI) 명령을 사용하여 인스턴스에서 RSA 키 지문을 확인할 수 있습니다. 이 기능은 타사의 퍼블릭 AMI에서 인스턴스를 시작한 경우에 유용합니다. SSH HOST KEY FINGERPRINTS 섹션을 찾아서 RSA 지문(예: 1f:51:ae:28:bf:89:e9:d8:1f:25:5d:37:2d:7d:b8:ca:9f:f5:f1:6f)을 적고 이것을 인스턴스의 지문과 비교합니다.

    Copy
    aws ec2 get-console-output --instance-id instance_id

    다음은 살펴봐야 할 예제입니다.

    -----BEGIN SSH HOST KEY FINGERPRINTS----- ... 1f:51:ae:28:bf:89:e9:d8:1f:25:5d:37:2d:7d:b8:ca:9f:f5:f1:6f ... -----END SSH HOST KEY FINGERPRINTS-----

    SSH HOST KEY FINGERPRINTS 섹션은 인스턴스를 처음 부팅한 후에만 사용할 수 있으니 유의하십시오.

  2. PuTTY을 시작합니다. 즉, [시작] 메뉴에서 [모든 프로그램] > [PuTTY] > [PuTTY]를 선택합니다.

  3. Category 창에서 Session을 선택하고 다음 필드를 작성합니다.

    1. [Host Name] 상자에 user_name@public_dns_name을 입력합니다. AMI에 적합한 사용자 이름을 지정해야 합니다. 예:

      • Amazon Linux AMI의 경우 사용자 이름은 ec2-user입니다.

      • RHEL AMI의 경우 사용자 이름은 ec2-user 또는 root입니다.

      • Ubuntu AMI의 경우 사용자 이름은 ubuntu 또는 root입니다.

      • Centos AMI의 경우 사용자 이름은 centos입니다.

      • Fedora AMI의 경우 사용자 이름은 ec2-user입니다.

      • SUSE의 경우 사용자 이름은 ec2-user 또는 root입니다.

      • ec2-userroot를 사용할 수 없는 경우 AMI 공급자에게 문의하십시오.

    2. (IPv6 전용) 인스턴스의 IPv6 주소를 이용해 연결하려면 user_name@ipv6_address를 입력합니다. AMI에 적합한 사용자 이름을 지정해야 합니다. 예:

      • Amazon Linux AMI의 경우 사용자 이름은 ec2-user입니다.

      • RHEL AMI의 경우 사용자 이름은 ec2-user 또는 root입니다.

      • Ubuntu AMI의 경우 사용자 이름은 ubuntu 또는 root입니다.

      • Centos AMI의 경우 사용자 이름은 centos입니다.

      • Fedora AMI의 경우 사용자 이름은 ec2-user입니다.

      • SUSE의 경우 사용자 이름은 ec2-user 또는 root입니다.

      • ec2-userroot를 사용할 수 없는 경우 AMI 공급자에게 문의하십시오.

    3. [Connection type] 아래에서 [SSH]를 선택합니다.

    4. [Port]가 22인지 확인합니다.

     PuTTY 구성 - 세션
  4. [Category] 창에서 [Connection], [SSH]를 차례로 확장하고 [Auth]를 선택합니다. 다음 작업을 완료합니다.

    1. [Browse]를 선택합니다.

    2. 키 페어에 대해 생성한 .ppk 파일을 선택한 다음 [Open]을 선택합니다.

    3. (선택 사항) 이 세션을 나중에 다시 시작하려는 경우 세션 정보를 나중에 사용할 수 있게 저장할 수 있습니다. [Category] 트리에서 [Session]을 선택하고 [Saved Sessions]에 세션 이름을 입력한 다음 [Save]를 선택합니다.

    4. [Open]을 클릭하여 PuTTY 세션을 선택합니다.

     PuTTY 구성 - 인증
  5. 이 인스턴스에 처음 연결한 경우 PuTTY에서 연결하려는 호스트를 신뢰할 수 있는지 묻는 보안 알림 대화 상자가 표시됩니다.

  6. (선택 사항) 보안 알림 대화 상자의 지문이 1단계에서 얻은 이전 지문과 일치하는지 확인합니다. 이들 지문이 일치하지 않으면 누군가가 "메시지 가로채기(man-in-the-middle)" 공격을 시도하고 있는 것일 수 있습니다. 이들 지문이 일치하면 다음 단계를 계속 진행합니다.

  7. [Yes]를 선택합니다. 창이 열리고 인스턴스에 연결됩니다.

    참고

    개인 키를 PuTTY 형식으로 변환할 때 암호문을 지정한 경우 인스턴스에 로그인할 때 암호문을 제공해야 합니다.

인스턴스에 연결을 시도하는 동안 오류가 발생한 경우 인스턴스 연결 문제 해결을 참조하십시오.

PuTTY 보안 사본 클라이언트를 사용하여 Linux 인스턴스로 파일 전송

PuTTY SCP(Secure Copy) 클라이언트는 Windows 컴퓨터와 Linux 인스턴스 간에 파일을 전송하는 데 사용할 수 있는 명령줄 도구입니다. GUI(그래픽 사용자 인터페이스)를 선호하는 경우 WinSCP라는 오픈 소스 GUI 도구를 사용할 수 있습니다. 자세한 내용은 WinSCP를 사용하여 Linux 인스턴스로 파일 전송 단원을 참조하십시오.

PSCP를 사용하려면 PuTTYgen을 사용하여 프라이빗 키 변환에서 생성한 프라이빗 키가 필요합니다. 또한 Linux 인스턴스의 퍼블릭 DNS 주소도 필요합니다.

다음 예에서는 Sample_file.txt 파일을 Windows 컴퓨터의 C:\ 드라이브에서 Amazon Linux 인스턴스의 ec2-user 홈 디렉터리로 전송합니다.

Copy
pscp -i C:\path\my-key-pair.ppk C:\path\Sample_file.txt ec2-user@public_dns:/home/ec2-user/Sample_file.txt

(IPv6 전용) 다음 예에서는 인스턴스의 IPv6 주소를 이용해 Sample_file.txt 파일을 전송합니다. IPv6 주소는 대괄호([])로 묶어야 합니다.

Copy
pscp -i C:\path\my-key-pair.ppk C:\path\Sample_file.txt ec2-user@[ipv6-address]:/home/ec2-user/Sample_file.txt

WinSCP를 사용하여 Linux 인스턴스로 파일 전송

WinSCP는 SFTP, SCP, FTP 및 FTPS 프로토콜을 사용하여 원격 컴퓨터로 파일을 업로드하고 전송할 수 있는 Windows용 GUI 기반 파일 관리자입니다. WinSCP를 사용하면 Windows 시스템에서 Linux 인스턴스로 파일을 끌어 놓거나 두 시스템 간에 전체 디렉터리 구조를 동기화할 수 있습니다.

WinSCP를 사용하려면 PuTTYgen을 사용하여 프라이빗 키 변환에서 생성한 프라이빗 키가 필요합니다. 또한 Linux 인스턴스의 퍼블릭 DNS 주소도 필요합니다.

  1. http://winscp.net/eng/download.php에서 WinSCP를 다운로드하여 설치합니다. 대부분 사용자의 경우 기본 설치 옵션을 그대로 사용해도 좋습니다.

  2. WinSCP를 시작합니다.

  3. [WinSCP Login] 화면에서 [Host name]에 인스턴스의 퍼블릭 DNS 호스트 이름 또는 퍼블릭 IPv4 주소를 입력합니다.

    (IPv6 전용) 인스턴스의 IPv6 주소를 이용해 로그인하려면 인스턴스의 IPv6 주소를 입력합니다.

  4. [User name]에는 AMI의 기본 사용자 이름을 입력합니다. Amazon Linux AMI의 경우 사용자 이름은 ec2-user입니다. Red Hat AMI의 경우 사용자 이름은 root이며, Ubuntu AMI의 경우 사용자 이름은 ubuntu입니다.

  5. 인스턴스의 프라이빗 키를 지정합니다. [Private key]에서는 프라이빗 키의 경로를 입력하거나 ["..."] 버튼을 선택하여 파일을 찾아봅니다. 최신 WinSCP 버전의 경우 [Advanced]를 선택하여 어드밴스 사이트 설정을 열고 [SSH]에서 [Authentication]을 선택하여 [Private key file] 설정을 찾습니다.

    다음은 WinSCP 버전 5.9.4의 스크린샷입니다.

     WinSCP Advanced 화면

    WinSCP에는 PuTTY 프라이빗 키 파일(.ppk)이 필요합니다. PuTTYgen을 사용하여 .pem 보안 키 파일을 .ppk 형식으로 변환할 수 있습니다. 자세한 내용은 PuTTYgen을 사용하여 프라이빗 키 변환 단원을 참조하십시오.

  6. (선택 사항) 왼쪽 패널에서 [Directories]를 선택하고 파일을 추가할 디렉터리의 경로를 [Remote directory]에 입력합니다. 최신 WinSCP 버전의 경우 [Advanced]를 선택하여 어드밴스 사이트 설정을 연 다음 [Environment]에서 [Directories]를 선택하여 [Remote directory] 설정을 찾습니다.

  7. [Login]을 선택하여 연결하고 [Yes]를 선택하여 호스트 지문을 호스트 캐시에 추가합니다.

     WinSCP 화면
  8. 연결이 설정된 후 연결 창에서 Linux 인스턴스는 오른쪽에 있고 로컬 시스템은 왼쪽에 있습니다. 로컬 시스템에서 원격 파일 시스템으로 파일을 직접 끌어 놓을 수 있습니다. WinSCP에 대한 자세한 내용은 http://winscp.net/eng/docs/start의 프로젝트 설명서를 참조하십시오.

    "Cannot execute SCP to start transfer" 오류가 표시되는 경우 먼저 Linux 인스턴스에 scp를 설치해야 합니다. 일부 운영 체제의 경우, 이 명령어는 openssh-clients 패키지에 있습니다. Amazon ECS 최적화 AMI 같은 Amazon Linux 변형의 경우에는 다음 명령을 사용하여 scp를 설치하십시오.

    Copy
    [ec2-user ~]$ sudo yum install -y openssh-clients