만쥬의 개발일기
article thumbnail

AWS에서 EC2 인스턴스를 생성하게 되면 public/private 키 쌍이 생성되고

public ➡️ AWS 인증서버

private ➡️.pem 파일로 로컬에

이런식으로 저장이 된다.

 

하지만 만약 pem 파일을 잃어버렸거나, pem파일이 없는 기기에서 ssh로 접속을 하고 싶을 때 다음의

방법을 따르면 된다.

 

로컬에서 public/private 키쌍을 생성

$ cd ~/.ssh/
$ ssh-keygen -f ~/.ssh/id_rsa_keyname

 

해당 위치에서 ssh-keygen 커맨드를 입력하면, 다음 두 파일이 생성된다.
id_rsa (프라이빗키)
id_rsa.pub(퍼블릭키)

 

만약 이전에 사용하던 키가 있다면, 이 과정은 생략해도 된다.

 

생성된 public 키를 EC2 인스턴스에 복사

EC2 인스턴스의 ~/.ssh/ 하위에 존재하는 authorized_keys 파일에 생성된 로컬 public 키를 붙여넣는다.

기존 키가 존재한다면, 해당 키의 한 줄 아래에 붙여 넣는다.

 

아래 스크린샷과 함께 자세한 설명이 있다.

 

왼쪽 NAV 바에있는 인스턴스를 클릭하고, 내 인스턴스를 우클릭해 연결을 클릭한다.

사용자 이름을 입력하고 연결을 클릭한다.

vi 편집기를 사용해 EC2 인스턴스의 ~/.ssh/ 하위에 존재하는 authorized_keys에 로컬 퍼블릭 키를 저장한다.

$ vi ~/.ssh/authorized_keys

 

위: 기존에 존재하던키 아래: 새롭게 추가한 public 키

로컬에서 ssh로 EC2 인스턴스에 접속한다

$ ssh {EC2인스턴스 user id}@{EC2 public ip}

접속 완료!

 

++

만약 ubuntu@13.125.217.102: Permission denied (publickey) 같은 에러가 발생한다면, 먼저 발급받은 키의 권한을 chmod로 600까지 내려보고, 그래도 안된다면 ssh 접속 시 프라이빗 키를 다음과 같이 함께 전달한다.

ssh {ec2 username}@{ec2 ip} -i test

 

profile

만쥬의 개발일기

@KangManJoo

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!