반응형
[AWS/Linux] SSH 접속의 비밀: "자물쇠와 열쇠" 원리로 이해하기
AWS EC2 인스턴스를 만들고 터미널로 접속할 때, 우리를 가장 괴롭히는 오류 중 하나가 바로 Permission denied (publickey)입니다. 분명히 키 페어(.pem) 파일이 있는데 왜 서버는 나를 거부하는 걸까요? 그 해답은 SSH의 '비대칭 암호화' 원리에 있습니다.

1. SSH 접속은 '자물쇠'와 '열쇠'의 만남입니다
SSH(Secure Shell) 접속은 우리가 일상에서 문을 열고 들어가는 과정과 똑같습니다. 다만, 열쇠가 두 종류로 나뉘어 있을 뿐입니다.
- 공개키 (Public Key) = 자물쇠: 서버(EC2 인스턴스) 내부에 저장되는 데이터입니다. 누구나 볼 수 있어도 안전하며, 서버의 특정 파일(
~/.ssh/authorized_keys) 안에 텍스트 형태로 저장되어 있습니다. - 개인키 (Private Key) = 열쇠: 사용자(내 PC)가 가지고 있는
.pem파일입니다. 이 열쇠는 절대 남에게 보여주면 안 되며, 오직 나만 가지고 있어야 합니다.
2. 왜 접속 오류가 발생하나요?
우리가 겪었던 오류의 원인은 간단합니다. 서버에 걸려 있는 자물쇠와 내가 가진 열쇠가 맞지 않았기 때문입니다.
- 상황: 인스턴스를 생성할 때 A라는 자물쇠를 채웠는데, 내 PC에는 B라는 열쇠(
easyfly.pem)만 있거나, 혹은 열쇠의 모양이 변형된 경우입니다. - 결과: 서버는 "너의 열쇠는 우리 집 자물쇠와 맞지 않아!"라며 접속을 거부(
Permission denied)하게 됩니다.
3. 우리가 성공한 해결 전략: "자물쇠를 추가하자!"
AWS 콘솔에서 이미 채워진 자물쇠를 바꾸는 설정 버튼은 없습니다. 하지만 우리는 브라우저 기반 터미널이라는 뒷문으로 들어가 서버 내부의 자물쇠 목록을 직접 수정했습니다.
- 새 열쇠의 자물쇠 도면 추출:
ssh-keygen -y명령어를 사용하여 새 열쇠(easyfly-new.pem)에 딱 맞는 자물쇠 도면(Public Key)을 알아냈습니다. - 자물쇠 목록 업데이트: 서버의 자물쇠 보관함인
authorized_keys파일에 새 도면을 한 줄 추가했습니다. - 인증 성공: 이제 서버는 기존 자물쇠와 새 자물쇠를 모두 가지게 되었고, 우리가 새 열쇠를 제시했을 때 문을 열어주게 되었습니다.
4. 핵심 요약 및 주의사항
- SSH 키는 세트다: 항상 서버의 자물쇠(
Public Key)와 내 PC의 열쇠(Private Key)가 한 쌍인지 확인해야 합니다. - 권한이 중요하다: 열쇠가 너무 노출되어 있으면(권한이 너무 높으면) 보안상 SSH가 접속을 차단합니다. 그래서
chmod 400명령어로 열쇠의 보안을 강화해야 합니다. - 뒷문을 활용하자: PC 접속이 안 될 때는 AWS의 'EC2 인스턴스 연결(브라우저 방식)'을 통해 서버 내부 설정을 수정할 수 있습니다.
마치며
서버의 보안은 이 '자물쇠와 열쇠'의 원리에서 시작됩니다. 이제 원리를 이해했으니, 앞으로 어떤 인스턴스를 만나더라도 당황하지 않고 접속 문제를 해결하실 수 있을 겁니다!
반응형
'컴퓨터 활용 > 노년에 즐기는 코딩' 카테고리의 다른 글
| [클라우드] 구글 클라우드 경고 해결 과정 (0) | 2026.02.04 |
|---|---|
| 출간동행 프로젝트 사용법 정리 (2) | 2026.01.28 |
| Calibre 빠른 시작 길잡이 (2) | 2026.01.27 |
| 함께 합니다, 출간동행 (1) | 2026.01.27 |
| 출간동행 실비출판서비스 기획안 (3) | 2026.01.26 |
댓글