본문 바로가기
컴퓨터 활용/노년에 즐기는 코딩

SSH 접속의 비밀: "자물쇠와 열쇠" 원리

by easyfly 2026. 1. 29.
반응형

[AWS/Linux] SSH 접속의 비밀: "자물쇠와 열쇠" 원리로 이해하기

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

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 콘솔에서 이미 채워진 자물쇠를 바꾸는 설정 버튼은 없습니다. 하지만 우리는 브라우저 기반 터미널이라는 뒷문으로 들어가 서버 내부의 자물쇠 목록을 직접 수정했습니다.

  1. 새 열쇠의 자물쇠 도면 추출: ssh-keygen -y 명령어를 사용하여 새 열쇠(easyfly-new.pem)에 딱 맞는 자물쇠 도면(Public Key)을 알아냈습니다.
  2. 자물쇠 목록 업데이트: 서버의 자물쇠 보관함인 authorized_keys 파일에 새 도면을 한 줄 추가했습니다.
  3. 인증 성공: 이제 서버는 기존 자물쇠와 새 자물쇠를 모두 가지게 되었고, 우리가 새 열쇠를 제시했을 때 문을 열어주게 되었습니다.

4. 핵심 요약 및 주의사항

  • SSH 키는 세트다: 항상 서버의 자물쇠(Public Key)와 내 PC의 열쇠(Private Key)가 한 쌍인지 확인해야 합니다.
  • 권한이 중요하다: 열쇠가 너무 노출되어 있으면(권한이 너무 높으면) 보안상 SSH가 접속을 차단합니다. 그래서 chmod 400 명령어로 열쇠의 보안을 강화해야 합니다.
  • 뒷문을 활용하자: PC 접속이 안 될 때는 AWS의 'EC2 인스턴스 연결(브라우저 방식)'을 통해 서버 내부 설정을 수정할 수 있습니다.

마치며
서버의 보안은 이 '자물쇠와 열쇠'의 원리에서 시작됩니다. 이제 원리를 이해했으니, 앞으로 어떤 인스턴스를 만나더라도 당황하지 않고 접속 문제를 해결하실 수 있을 겁니다!

 

반응형

댓글