[13편] 클라우드 서버(AWS EC2 등) 접속 시 SSH 키 페어 오류 해결 가이드






로컬 환경에서 개발을 마치고 리눅스 기초 명령어까지 숙지했다면, 이제 내 컴퓨터가 아닌 원격 클라우드 서버(예: AWS EC2, GCP 등)에 직접 접속해 서비스를 배포하고 운영할 차례다. 클라우드 서버를 처음 생성하고 터미널을 켜서 원격 접속 명령어를 당차게 입력하지만, 초보자들은 십중팔구 차가운 경고 문구를 마주하며 서버 문턱에서 가로막히게 된다.

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: UNPROTECTED PRIVATE KEY FILE! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Permissions for 'my-key.pem' are too open. Load key "my-key.pem": bad permissions ssh: connect to host ... port 22: Permission denied

아이디도 맞고 서버 IP 주소도 정확한데, 키 파일의 권한이 너무 개방되어 있다는 이유로 접속이 통째로 차단되는 것이다.

[소제목] SSH 키 페어 인증 방식과 권한 오류의 원인

클라우드 서버는 보안상의 이유로 비밀번호를 직접 입력하는 전통적인 로그인 방식을 기본적으로 차단한다. 대신 강력한 암호화 기반의 '키 페어(Key Pair)'라는 파일(.pem 등)을 이용해 신원을 증명한다.

  • 서버는 내 컴퓨터에 있는 프라이빗 키(Private Key)와 서버에 등록된 퍼블릭 키(Public Key)가 정확히 맞물릴 때만 문을 열어준다.

  • 이때 가장 중요한 철칙은 내 컴퓨터에 저장된 비밀키 파일의 보안 권한이 오직 나(소유자)에게만 읽기 권한으로 엄격하게 잠겨 있어야 한다는 점이다.

  • 만약 이 키 파일이 다른 사용자도 볼 수 있거나 너무 헐겁게 열려 있다면, 리눅스 및 SSH 클라이언트는 해킹 위험이 있다고 판단하여 접속을 원천 차단해 버린다.

[소제목] 운영체제별 SSH 키 파일(.pem) 권한 수정 및 접속 방법

이 오류를 해결하는 방법은 생각외로 간단하지만, 운영체제별로 정확한 명령어를 입력해야 한다. 직접 겪어본 바에 따르면 맥(Mac)이나 리눅스 환경에서 이 문제가 가장 자주 발생한다.

  1. 맥 또는 리눅스 터미널 환경에서 키 파일이 저장된 폴더로 이동한다.

  2. 다음 명령어를 입력하여 키 파일의 권한을 오직 소유자만 읽을 수 있도록(600) 엄격하게 조인다. chmod 400 my-key.pem (또는 chmod 600 my-key.pem)

  3. 윈도우 환경인 경우, 파워셸이나 CMD 대신 탐색기를 이용해 키 파일의 [속성] -> [보안] 탭으로 들어가 상속된 권한을 제거하고 내 계정 외의 다른 사용자 권한을 모두 삭제해주어야 한다.

  4. 권한을 올바르게 수정한 뒤, 다시 SSH 접속 명령어를 실행한다. ssh -i "my-key.pem" ec2-user@[서버IP주소]

명령어를 치고 잠시 기다리면 에러 없이 원격 서버의 터미널 화면이 반갑게 맞이해 주는 것을 볼 수 있다.

[소제목] 초보자가 자주 하는 실수와 주의사항

키 페어 접속을 시도할 때 흔히 하는 실수는 다운로드받은 .pem 파일의 이름을 제멋대로 바꾸거나 엉뚱한 폴더에 방치해 두는 것이다. 특히 윈도우 환경에서 파일을 옮기다가 권한이 풀려버려 나중에 다시 접속하려고 하면 똑같은 에러가 반복해서 발생하므로, 키 파일은 항상 안전하고 고정된 경로(예: 홈 디렉토리의 .ssh 폴더 등)에 보관하는 것이 좋다.

또한, AWS 등의 클라우드 보안 그룹(Firewall) 설정에서 내 IP 주소의 22번 포트(SSH) 접근을 허용해 두지 않았다면, 키 페어 권한을 아무리 완벽하게 고쳐도 연결 시간 초과(Connection timed out) 에러가 발생한다. 키 파일 권한 문제와 네트워크 방화벽 설정은 원격 서버 접속의 양대 산맥이므로 둘 다 꼼꼼히 점검해야 한다. 처음에는 클라우드 인프라의 벽이 높게 느껴지겠지만, 키 관리의 원리를 이해하고 나면 서버 다루기가 한결 수월해진다.

핵심 요약:

  • SSH 키 페어 접속 시 발생하는 'Permissions are too open' 에러는 프라이빗 키 파일의 보안 권한이 지나치게 개방되어 있어 발생한다.

  • 맥/리눅스 환경에서는 chmod 400 명령어로 키 파일의 권한을 엄격하게 잠그고 접속해야 한다.

  • 키 파일 권한 수정 외에도 클라우드 서버의 보안 그룹(방화벽)에서 22번 포트가 열려 있는지 함께 확인해야 한다.

다음 편 예고: 다음 편에서는 개발 중 브라우저 캐시 문제로 변경사항이 안 보일 때 이를 깔끔하게 해결하는 방법을 알아본다.

이 글을 읽으면서 클라우드 서버에 접속하다가 키 페어 에러나 권한 문제로 식은땀을 흘렸던 기억이 있다면 댓글로 편하게 공유해 주세요!

댓글 쓰기

0 댓글

신고하기

프로필

이미지alt태그 입력