[Terraform] EC2 Key-pair 적용기

Sunwu Park·2024년 2월 8일
0

Cloud & CI/CD

목록 보기
8/17

이번에 계속 만들고 있는 프로젝트에서 여러 AWS 구성들을 테라폼으로 관리하기 위해 테라폼을 공부해보고 있다. 일단 https://blog.outsider.ne.kr/1301 분의 엄청난 블로그를 따라하면서 EC2를 만들어 보고 있었다. 분명 EC2, VPC등은 잘 만들어져서 SSH로 테스트 하고 싶은데 이상하게 자꾸 접속이 안되었다.

ap-northeast-2.compute.amazonaws.com: Permission denied (publickey).

자꾸 이런 오류만 뜨면서 안되는 것이었다. 여러가지방법인
chmod 400 {pem.key}
chmod 600 {pem.key}
chmod 777 {pem.key}

등의 여러 방법을 시도 했으나 당연히 안되었다. 나는 ubuntu만 사용하기에 당연히 root user도 ubuntu였다. 고로 아무래도 내가 key를 만드는 방식에 문제가 있거나 접속하는데 문제가 있다고 생각을 하였다.

resource "tls_private_key" "cicd_make_key" {
  algorithm = "RSA"
  rsa_bits  = 4096
}

resource "aws_key_pair" "cicd_make_keypair" {
  key_name   = "test2"
  public_key = tls_private_key.cicd_make_key.public_key_openssh
}

resource "local_file" "cicd_downloads_key" {
  filename = "test.pem"
  content  = tls_private_key.cicd_make_key.private_key_pem
}

기존에는 이런식으로 키를 만들었었다. 이것은
https://velog.io/@salgu1998/Terraform%EC%9C%BC%EB%A1%9C-AWS-EC2-%EC%83%9D%EC%84%B1%ED%95%98%EA%B8%B0

이 블로그에 있는 key 만드는 방식을 따라하였다.

분명 잘 되는 것은 맞는데 내가 너무 멍청해 이것을 어떻게 적용하는지 몰랐다. 고로

https://devs0n.tistory.com/55

이 블로그에 나와있는 방식을 이용하였다.

먼저 ssh-keygen을 이용해서 키를 만들고 그 값으로 퍼블릭키 값을 넣어주었다

resource "aws_key_pair" "terraform-key-pair" {
  key_name   = "tf-key-pair"

  # public_key = "{.pub 파일 내용}"
  public_key = "ssh-rsa ~~~=="

  tags = {
    description = "terraform key pair import"
  }
}

그런다음에 ssh로 로그인을 할때

ssh -i "tf-key-pair" ubuntu@ec2-3-39-86-70.ap-northeast-2.compute.amazonaws.com

이런식으로 로그인하니깐 잘 들어가졌다.
위에의 방식으로는 왜 안되었을까. tf-key-pair.pem으로 해서 안되는것이었나..?
ㅠㅠ

https://isc9511.tistory.com/167

0개의 댓글

관련 채용 정보