SSM Port Forwarding으로 PuTTY로 EC2에 접속해 보기
안녕하세요 클래스메소드 김재욱(Kim Jaewook) 입니다. 이번 블로그에서는 SSM Port Forwarding으로 PuTTY로 EC2에 접속해 보는 방법을 정리해 봤습니다.
SSM Port Forwarding을 이용한 PuTTY 접속
SSM(Session Manager)의 Port Forwarding 기능을 이용하여 PuTTY로 EC2에 SSH 접속합니다.
SSM Port Forwarding을 통해 접속하기 때문에 EC2 보안 그룹(Security Group)에 SSH(22번 포트) 인바운드 규칙을 추가할 필요가 없습니다.
Port Forwarding 동작 흐름
로컬 PC
↓
① aws ssm start-session 실행 (Port Forwarding 시작)
↓
로컬 포트(예: 13322) → EC2 22번 포트(SSH) 연결
↓
② PuTTY 접속 설정 (.ppk 키 / Session 설정)
↓
③ PuTTY에서 localhost:13322 로 접속
↓
EC2 SSH 접속 완료
Port Forwarding 시작
아래 명령어를 실행하여 로컬 포트와 EC2의 SSH 포트(22)를 포워딩합니다.
Linux / macOS
aws ssm start-session \
--target 대상_EC2_인스턴스_ID \
--document-name AWS-StartPortForwardingSession \
--parameters portNumber=22,localPortNumber=13322
Windows CMD
aws ssm start-session --target 대상_EC2_인스턴스_ID --document-name AWS-StartPortForwardingSession --parameters portNumber=22,localPortNumber=13322
실행 예시
aws ssm start-session --target i-0f50ac0f146b88b24 --document-name AWS-StartPortForwardingSession --parameters portNumber=22,localPortNumber=13322
실행 성공 예시
Waiting for connections...
PuTTY 접속 설정
PuTTY로 접속하기 전에 .pem 키 페어 파일을 .ppk 형식으로 변환한 후 PuTTY에 설정해야 합니다.
※ 키 페어는 별도 절차를 통해 발급받아 사용합니다.
※ 변환 작업에는 PuTTYgen을 사용합니다.
.ppk 파일 설정 위치
PuTTY에서 아래 메뉴로 이동하여 .ppk 파일을 설정합니다.
Connection
└ SSH
└ Auth
└ Credentials
└ Private key file for authentication

PuTTY Session 설정
.ppk 파일 설정이 완료되었다면 PuTTY의 Session 메뉴에서 아래 항목을 설정한 후 Open 버튼을 클릭합니다.
Save 버튼을 클릭하면 현재 설정을 저장할 수 있으며, 다음 접속부터는 저장된 세션으로 간편하게 접속할 수 있습니다.

| 항목 | 설정값 |
|---|---|
| Host Name | localhost |
| Port | 13322 |
| Connection type | SSH |
PuTTY 접속
Open 버튼을 클릭하면 아래와 같이 login as: 메시지가 표시됩니다.
접속할 사용자 계정을 입력합니다.
Amazon Linux 기반 EC2의 기본 사용자 계정은 ec2-user 이므로 아래와 같이 입력합니다.
login as: ec2-user
ec2-user 입력 후 아래와 같은 터미널 화면이 표시되면 EC2 SSH 접속이 정상적으로 완료된 것입니다.
이제 PuTTY를 통해 EC2 서버에 접속하여 작업할 수 있습니다.

마무리
이번 글에서는 AWS Systems Manager(Session Manager)의 Port Forwarding 기능을 이용하여 PuTTY로 EC2 인스턴스에 안전하게 SSH 접속하는 방법을 정리해 보았습니다.
기존 방식처럼 EC2 보안 그룹에 SSH(22번 포트)를 외부에 오픈하지 않아도 되기 때문에 보안 측면에서 훨씬 안전하게 서버를 운영할 수 있다는 장점이 있습니다.
특히 다음과 같은 환경에서 매우 유용하게 사용할 수 있습니다.
- 운영 서버의 SSH 포트를 외부에 공개하고 싶지 않은 경우
- Bastion Host(점프 서버) 없이 EC2에 접속하고 싶은 경우
- 사내 보안 정책으로 인해 특정 IP만 허용하기 어려운 경우
- AWS 권한 기반으로 접속 이력을 관리하고 싶은 경우
또한 Session Manager를 사용하면 AWS CloudTrail 및 Session Manager 로그 기능을 통해 접속 이력 관리 및 감사(Audit)도 가능하기 때문에 운영 환경에서 더욱 안정적인 접근 제어 구성이 가능합니다.
정리하면 이번 방식은 다음과 같은 장점을 가집니다.
| 항목 | 기존 SSH 방식 | SSM Port Forwarding 방식 |
|---|---|---|
| 22번 포트 오픈 | 필요 | 불필요 |
| Bastion Host | 필요할 수 있음 | 불필요 |
| 접근 제어 | 보안 그룹 기반 | IAM 권한 기반 |
| 접속 로그 관리 | 제한적 | AWS 로그 연동 가능 |
| 보안성 | 상대적으로 낮음 | 상대적으로 높음 |
처음 설정할 때는 AWS CLI, Session Manager Plugin, PuTTY 설정 등 준비 과정이 조금 필요하지만, 한 번 구성해 두면 이후에는 매우 편리하게 EC2 접속 환경을 운영할 수 있습니다.
특히 Windows 환경에서 PuTTY를 사용하는 경우에도 SSM Port Forwarding과 함께 사용하면 안전하면서도 기존 SSH 사용 방식과 거의 동일한 경험으로 접속할 수 있습니다.
EC2 보안을 강화하면서도 관리 편의성을 높이고 싶다면 SSM 기반 접속 방식을 적극적으로 활용해 보시는 것을 추천드립니다.







