NCP Server에 pem key로 ssh 접속하기 - Permission denied (publickey)

sckwon770·2023년 12월 7일
0

클라우드

목록 보기
1/1

동기

AWS에서는 SSH를 권장하지 않고 AWS Session Manager를 쓰도록 권장하지만, CI/CD 파이프라인을 구축하고 나서 서버에 접속하는 경우는 대게 긴급한 경우라 AWS 로그인 ➡ MFA ➡ EC2 Console ➡ Session Manager... 뎁스가 너무 깊어서 귀찮다...

그래서 그나마 SSH를 안전하게 관리하는 방법은
1. 22번 외의 포트를 SSH 용으로 사용하고
2. SSH Authentication을 철저히 설정한다.

2 번의 경우 대게 pem key를 많이 사용하는데, NCP Server의 SSH pem key 설정하는 과정에서 착각해서 헤맨 것을 간단하게 적어본다.


트러블슈팅

AWS EC2

AWS EC2의 경우, 인스턴스를 생성하는 과정에서 Key pair를 설정하면 해당 pem key로 SSH 접속 가능하도록 자동으로 세팅된다.

NCP Server

그래서 NCP도 자동으로 세팅되는 줄 알고 계속 헤맸다... 사실 회색 작은 글씨로 용도가 적혀있긴한데, pem key 확장자이다 보니 SSH 접속 용도로도 쓰라는 것인줄 알았다.

이 pem key로 SSH 접속을 시도하면 다음과 같은 에러가 발생한다.

$ Permission denied (publickey)

Permission denied에 꽂혀 많은 삽질을 했지만, 깔끔하게 정리해준 다음의 글을 읽고 다른 곳부터 원인을 찾아가다보니 알게되었다. 서버 생성할 때 만든 인증키는 관리자 비밀번호 확인할때나 쓰는 것이고, SSH 접속할려면 우분투 서버에 세팅을 해줘야 한다.

SSH Pem key 세팅

  • 로컬에서 RSA키 생성
$ ssh-keygen -t rsa -b 2048 -f KEY_NAME

  • 서버에서 authorized_keys 파일 생성
$ mkdir ~/.ssh/
$ chmod 700 ~/.ssh/
$ touch ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/authorized_keys
  • 생성한 public key 복사
$ cat KEY_NAME.pub

  • 서버의 authorized_keys에 붙여넣기
$ vim ~/.ssh/authorized_keys
$ 키 직접 붙여넣기
  • 클라이언트에 생성한 키를 Pem key로 변경
$ mv KEY_NAME KEY_NAME.pem
$ ssh -i KEY_NAME.pem ubuntu@10.0.0.1

끝!

profile
늘 학습하고 적용하고 개선하는 개발자

0개의 댓글