홍차의 미로찾기

[AWS] MAC에서 EC2 연결 오류 기록 - Permissions 0644, zsh: permission denied 본문

프로그래밍/BUILD DEPLOY

[AWS] MAC에서 EC2 연결 오류 기록 - Permissions 0644, zsh: permission denied

홍차안디 2024. 10. 23. 01:43
반응형

현재 상황은 이렇다.

- ec2 생성

- 탄력적 IP 생성

 

 

1)  SSH 명령어로 pem 파일 사용해서 접속하기

.ssh 폴더에 pem 파일 저장 후, 아래 코드로 ec2 접속 연결 시도함. 

(pem 파일로 내가 생성한 우분투 ec2로 접속할 수 있음)

 

ssh -i ~/.ssh/server-key.pem ubuntu@EC2탄력적IP

 

근데 아래와 같은 접속 오류가 떴다.

 

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: UNPROTECTED PRIVATE KEY FILE! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Permissions 0644 for '/Users/내계정/.ssh/server-key.pem' are too open. It is required that your private key files are NOT accessible by others. This private key will be ignored. Load key "/Users/내계정/.ssh/server-key.pem": bad

 

1-1) 1번 권한 오류 해결

 

챗지피티에게 물어보니, SSH 접속 시 Permissions 0644 에러가 발생하는 경우에는, pem 파일의 권한이 너무 열려 있어서 보안 문제로 연결이 차단되는 것이라고 함.

pem 파일의 권한을 400 또는 600으로 설정하면 해결된다고 함.

 

아래와 같이 명령어 입력했더니 잘 됨!

chmod 400 ~/.ssh/server-key.pem

 

 

2) SSH 실행 스크립트를 sh 파일로 만들어서 실행하기

매번 ssh 명령어를 작성하기에는 번거로워서 sh 파일을 생성하기로 함.

이 sh 파일을 실행해서 손쉽게 EC2에 접속 가능하다.

 

~/deploy 경로로 sh 파일 하나 생성함.

 

아래 명령어로 파일 생성 가능

# 파일 생성
vim server_ssh.sh

 

파일 내용

#!/bin/bash

ssh -i ~/.ssh/server-key.pem ubuntu@EC2고정IP

 

  • 맨 위에 주석처럼 보이는 #은 주석이 아니다.
    • shebang(쉐뱅)이라고 불리는 특별한 의미를 가진 구문이라고 한다.
    • 스크립트가 실행될 때 사용할 interpreter를 지정하는 것이라고 함.
    • 시스템은 이 구문을 보고 해당 스크립트를 실행할 때 어떤 프로그램을 사용해야하는지 알 수 있다고 함.
      • ex)
        • #!/bin/bash
          • Bash로 실행
        • #!/usr/bin/python
          • python 으로 실행
        • #!/usr/bin/env sh
          • 기본 셸로 실행
  • shebang 작성법
    1. 스크립트 첫 줄에 위치
      • 그 아래 줄 # 부터는 주석으로 인식
    2. # !붙여서 작성한다
      • 가끔 띄어쓰기 할 때도 잘 작동되기도 하지만 기본적으로 붙여써야한다.

 

 

 

스크립트 실행 명령어 입력함.

~/deploy/server_ssh.sh

 

하지만 아래와 같이 권한이 없다는 에러가 났다.

zsh: permission denied: ./server_ssh.sh

 

 

2-1) 2번 권한 오류 해결

 

문제의 원인을 찾아보니, 스크립트 파일을 만들기만 하면 되는게 아니었다.

실행 권한을 부여해야 함!

 

chmod +x server_ssh.sh
반응형
Comments