【Terraform-01】keypair를 사용해 패스워드리스로 SSH

소개



제목 그대로 공개 키와 비밀 키를 사용하여 비밀번호가없는 EC2에 SSH합니다.
단지 그것뿐입니다만, Terraform을 사용해 구축한 것이 원인으로 빠졌습니다. .
계명의 비망록입니다. 환경은 mac.

먼저 결론



Terraform aws_key_pair은 import 만 지원하므로 암호없이 생성 된 공개 키를 사용하여 코드화해야합니다.

참고로 한 사이트



아래 사이트를 참고하겠습니다.이 장소를 빌려 주셔서 감사합니다.
Terraform을 사용하지 않는 경우의 순서는 아래 사이트를 참고해 주시면이라고 생각합니다!

ssh의 키를 Terraform으로 처리 SSH 공개키 인증으로 접속할 때까지 ssh-copy-id로 공개 키 전달 ssh에서 공개 키 인증을 사용하여 액세스

작업 시작



공개 키와 개인 키 생성


$ pwd
/Users/okome/.ssh
$ ssh-keygen -t rsa -f okome_id_rsa
$ ls -l
-rw-------  1 okome  okome  1843 Nov 15 20:30 okomne_id_rsa
-rw-r--r--  1 okome  okome   412 Nov 15 20:30 okomne_id_rsa.pub
$ cat okome_id_rsa.pub
ssh-rsa #ハッシュ値は省略します

개인 키 (okomne_id_rsa)의 권한은 600이 필수입니다.

코딩



이번에는 keypair.tf (확장자가 .tf이면 파일 이름은 선택 사항)에 방금 만든 공개 키를 지정합니다.
코드는 github에 업 유지했습니다.

자원명의 "this"와 key_name의 "this-key"는 임의의 값으로 OK입니다.
$ cat keypair.tf 
# okome_id_rsa.pub(password less)
resource "aws_key_pair" "this" {
  key_name = "this-key"
  public_key = "[okome_id_rsa.pub]の値をコピペする"
}

코딩 후에는 terraform apply로 EC2 인스턴스(및 VPC 또는 NW)를 구축합니다.

.ssh/config 만들기



SSH를 편하게하기 위해 다음 파일을 만듭니다.
$ /Users/okome/.ssh
$ vi /Users/okome/.ssh/config
Host okome01
  HostName     [EC2インスタンスに付与したパブリックIP]
  Port         22
  User         ec2-user #AmazonLinux2の場合
  IdentityFile ~/.ssh/okomne_id_rsa

EC2 인스턴스에 SSH


$ ssh okome01

       __|  __|_  )
       _|  (     /   Amazon Linux 2 AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-2/
40 package(s) needed for security, out of 72 available
Run "sudo yum update" to apply all updates.
-bash: warning: setlocale: LC_CTYPE: cannot change locale (UTF-8): No such file or directory
[ec2-user@ip-xx-xx-xx-xx ~]$

비밀번호를 듣지 못했습니다! 성공!

결론



SG로 액세스를 제한하고 있기 때문에 패스워드리스도 좋다고 생각합니다만, 강고하게 하고 싶은 경우는 패스워드 있는 편이 틀림없다고 생각합니다.
그 경우는 키를 생성할 때에 패스워드를 입력하면, 그것이 그대로 SSH 실행시의 패스워드가 됩니다.
$ ssh-keygen -t rsa -f okome_id_rsa
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:

빠진 원인은 이전에 작성한 패스워드 첨부의 열쇠를 코드화해 그것을 완전히 잊어버렸습니다. .
일단 코멘트에 쓰는 것으로 응급 처치 했습니다만, 가능하면 기술로 해결하고 싶다!
그러나 어떻게하는지 모르겠다.

쉽지만 이상입니다

좋은 웹페이지 즐겨찾기