【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 #ハッシュ値は省略します
$ 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
簡単ですが以上です
Author And Source
この問題について(【Terraform-01】keypairを使ってパスワードレスでSSH), 我々は、より多くの情報をここで見つけました https://qiita.com/sosat/items/f37d03c4bc9a8b2597aa著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .