新規に作成した鍵でEC2インスタンスにSSH接続する
EC2を使う際に、セキュリティを保つためにできることは色々あります。インスタンスへログインするために、独自に作成した鍵を使うことも、その1つです。
次の文書でも解説されています。
- Amazon Web Services: Overview of Security Processes(PDF)
- 2011年4月現在、和訳の最新は2009年1月版なので、こちらを読んだ方がよさそう。
というわけで、手順を復習したのでメモしておきます。変わったことや新しいことは、していません。
前提
手順
(1) インスタンスに新規ユーザを作成する。
EC2インスタンス作成時に割り当てたキーペアファイル(ここではxxx.pemとする)を使って、ユーザ名「ec2-user」でインスタンスにログインする。
[hoge@local ~]$ ssh -i xxx.pem ec2-user@ec2-xxx-xx-x-xx.compute-x.amazonaws.com
Amazon Linuxのインスタンスは、初期状態でrootにパスワードが設定されていないので、設定しておく。
[ec2-user@instance ~]$ sudo su - [root@instance ~]$ passwd
新規ユーザ「hoge」を追加して、パスワードを設定する。
[root@instance ~]# adduser hoge [root@instance ~]# passwd hoge
ユーザhogeにsudoを許可する。
[root@instance ~]# vi /etc/sudoers (下記を追記) hoge ALL=(ALL) ALL
インスタンスからログアウトする。
(3) 公開鍵をインスタンスに配置する
公開鍵をEC2インスタンスにコピーする。コピー先は、一旦ec2-userのホームディレクトリとしている。scpには、キーペアを使用する。
[hoge@local]$ scp -i xxx.pem ~/.ssh/id_rsa.pub ec2-user@ec2-xxx-xx-x-xx.compute-x.amazonaws.com:/home/ec2-user/
EC2インスタンスに、最初と同じ方法でログインする。公開鍵がコピーできたことを確認する。
[ec2-user@instance ~]$ ls id_rsa.pub
suコマンドで、ユーザhogeになる。
[ec2-user@instance ~]$ su hoge
hogeユーザのホームディレクトリに、.sshディレクトリを作成する。ローカルからコピーした公開鍵を、authorized_keyという名前に変えて配置する。
[hoge@instance ec2-user]$ mkdir /home/hoge/.ssh [hoge@instance ec2-user]$ sudo mv id_rsa.pub /home/hoge/.ssh/authorized_keys
移動した公開鍵の所有者とグループを、ec2-userからhogeに変更する。
[hoge@instance ec2-user]$ sudo chown hoge /home/hoge/.ssh/authorized_keys [hoge@instance ec2-user]$ sudo chgrp hoge /home/hoge/.ssh/authorized_keys
[hoge@instance ec2-user]$ sudo chmod 600 /home/hoge/.ssh/authorized_keys [hoge@instance ec2-user]$ sudo chmod 700 /home/hoge/.ssh
インスタンスからログアウトする。