【AWS】EC2インスタンスにユーザーを作成して公開鍵を登録する

スポンサーリンク

AWSのEC2インスタンスで新しくユーザーを作成した時に公開鍵を登録してSSHログインするまでの方法です。特にAWSに限ったやり方ではないですが手順をまとめておきました。

SSH用の鍵を作成

EC2インスタンスの作成とSSH接続については以下を参照してください。

www.task-notes.com

まずは、ローカルPCでSSH用の鍵を作成して、公開鍵を ec2-user のホームディレクトリにコピーします。

$ ssh-keygen -f ~/.ssh/id_rsa_ec2
$ scp -i ec2_test_keypair.pem ~/.ssh/id_rsa_ec2.pub ec2-user@<publicip>:~/
id_rsa_ec2.pub                                                                                                   100%  418     0.4KB/s   00:00

EC2インスタンスにSSH接続して公開鍵がコピーされていることを確認してください。

$ ssh -i ec2_test_keypair.pem ec2-user@<publicip>
Last login: Tue Aug  4 15:19:04 2015

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

https://aws.amazon.com/amazon-linux-ami/2015.03-release-notes/
[ec2-user@aws ~]$ ls
id_rsa_ec2.pub

ユーザーの作成と公開鍵の登録

新規ユーザーを作成してパスワードを設定してください。ここではtest-userを作成しました。

[ec2-user@aws ~]$ sudo su -
[root@aws ~]# adduser test-user
[root@aws ~]# passwd test-user

作成したユーザーに sudo を許可します。test-user ALL=(ALL) NOPASSWD: ALLにすると sudo 実行時にパスワードを求められません。

[root@aws ~]# echo "test-user ALL=(ALL) ALL" > /etc/sudoers.d/test-user
[root@aws ~]# chmod 440 /etc/sudoers.d/test-user

コピーした公開鍵を/home/test-user/.ssh/authorized_keysに配備します。

[root@aws ~]# su - test-user
[test-user@aws ~]$ mkdir .ssh
[test-user@aws ~]$ sudo mv /home/ec2-user/id_rsa_ec2.pub .ssh/authorized_keys
[test-user@aws ~]$ sudo chown test-user. .ssh/authorized_keys
[test-user@aws ~]$ sudo chmod 600 .ssh/authorized_keys
[test-user@aws ~]$ sudo chmod 700 .ssh/

作成したユーザーにSSHログイン

以上で設定は終わりました。ログインを簡単にするためにローカルの~/.ssh/configに以下を追加してもいいでしょう。

Host ec2-test
  User test-user
  HostName <publicip>
  IdentityFile ~/.ssh/id_rsa_ec2
  IdentitiesOnly yes

作成したユーザーにログインできたら成功です。

$ ssh ec2-test
Last login: Tue Aug  4 15:34:08 2015

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

https://aws.amazon.com/amazon-linux-ami/2015.03-release-notes/
[test-user@aws ~]$

これで ec2-user は削除しても大丈夫です。

[test-user@aws ~]$ sudo userdel -r ec2-user
[test-user@aws ~]$ sudo rm /etc/sudoers.d/cloud-init

今後、新しくユーザーを作成する時も同様の手順で登録していくことが可能です。ちなみに鍵は新しく作らなくても ec2-user の authorized_keys をコピーしても大丈夫ですね。その場合はインスタンス作成時にダウンロードしていた〜.pemファイルを秘密鍵として使用しましょう。

関連記事

 【AWS】EC2インスタンスの作成とSSH接続について - TASK NOTES