무중단 배포를 하려고 시도하던 중 갑자기 서버에 콘솔로 접속하기 위해서 기존에 하던대로 pem키를 이용해서 접속하려고 하는데 에러가 떴다...
분명 이전까지는 잘 됐는데 진짜 원인을 모르게 갑자기 접속이 안되는 상황에 멘붕이 좀 왔다...
Permissions 0644 for majorfolio-dev.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 majorfolio-dev.pem : bad permissions ubuntu@ec2-54-180-59-160.ap-northeast-2.compute.amazonaws.com:
Permission denied (publickey).
잘은 모르지만 읽어보니깐 파일을 너무 많이 열어서 그렇다는거 같은데 이게 뭔소리인지 도저히 모르겠었다.. 그날 pem키로 콘솔 접속을 많이 해봐야 3번 했는데..
아무튼 해결은 해야하니 Permission denied (publickey) 해결법을 좀 찾아봤다
대부분의 해결 방법이 다 권한을 수정하면 된다고 했다.
sudo chmod 400 [PATH]/[NAME].pem
많은 글들이 위의 방법으로 간단하게 해결이 된다고 해서 바로 해봤지만... 똑같은 에러가 나왔다...
좀 더 찾아보니 ec2 서버에 등록된 authorized_keys와 내가 기존에 쓰던 pem가 다르면 이런 문제가 생길수도 있다고 했다.
다행히 직렬 콘솔은 접속이 됐기 때문에 바로 들어가서 확인을 해보았다.
ubuntu@yourip:~$ cd
ubuntu@yourip:~$ cd ~/.ssh
ubuntu@yourip:~/.ssh$ ls
ubuntu@yourip:~/.ssh$ sudo cat authorized_keys
위의 명령어로 실행을 하면 되는데 아니 나는 .ssh 부터가 없었다....
사실 여기부터 이해가 안갔다..
이게 없는데 그동안 나는 왜 pem키로 접속이 됐던거지..?
아니면 그전에 있었는데 내가 무중단배포 설정하다가 뭐를 날린건가..?
진짜 별의별 생각을 다 해봤지만 결론은 모르겠다... 아무튼 이 상황을 해결하기 위해서
이제 authorized_keys 안에 다음과 같이 내 pem에 대한 내용을 넣어주면 되는데
양식은
sss-rsa "내 pem키 내용" "내 pem키 이름"
으로 넣어주면 된다
예를 들어 내 pem키가 mykey.pem일때(이 예시는 다른 블로그에서 해결하신 분의 이미지를 가져왔다)

위의 그림과 같이 입력하고 파일을 저장해 주면 된다
여기서 중요한 점은 아마 pem키를 텍스트로 열었을 때 위의 예시에 있는 "내 pem키 내용"과 다른 형식으로 내용이 있을 것이다!! 당황하지 말고 다음 명령어를 통해 공개키 형태로 내용을 변환 후 작성해주면 된다.
$ ssh-keygen -f mykey.pem -y
이제 이렇게 하면 위의 예시와 같은 형태의 값이 나올텐데 그대로 복사해서 넣어주면 된다.
이렇게 서버에 비어있던 authorized_keys 파일에 내가 사용할 pem키 정보를 넣고 다시 접속을 시도하니 성공했다!!!!
아직도 왜 갑자기 인증키가 사라진 이유는 모르겠지만 이렇게 해결은 우선 됐으니 앞으로는 서버 설정을 바꾸거나 할 때 조심히 해야겠다..