2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【Terraform-01】keypairを使ってパスワードレスでSSH

Last updated at Posted at 2019-11-15

はじめに

タイトルそのまま、公開鍵と秘密鍵を使ってパスワードレスでEC2にSSHします。
ただそれだけなのですが、Terraformを使って構築したのが原因でハマりました。。
戒めの備忘録です。環境はmac。

先に結論

Terraformのaws_key_pairはimportしかサポートしていないので、パスワード無しで生成した公開鍵を使ってコード化する必要がある。

参考にしたサイト

下記サイトを参考にさせて頂きました、この場を借りてお礼申し上げます:pray:
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にupしておきました。

リソース名の"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:

ハマった原因は以前作成したパスワード付きの鍵をコード化してそれをすっかり忘れてた、ですね。。
一旦コメントに書くことで応急処置しましたが、できれば技術で解決したい!
ただしやり方はわからないw

簡単ですが以上です:innocent:

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?