AWSのEC2インスタンスで新しくユーザーを作成した時に公開鍵を登録してSSHログインするまでの方法です。特にAWSに限ったやり方ではないですが手順をまとめておきました。
SSH用の鍵を作成
EC2インスタンスの作成とSSH接続については以下を参照してください。
まずは、ローカル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
ファイルを秘密鍵として使用しましょう。