ハトネコエ Web がくしゅうちょう

プログラミングとかAndroid

AWS EC2 インスタンスにユーザー追加する方法

親切なチュートリアルを見て、SSH 接続で EC2 のインスタンスにログインできるようになったところまではよかったんですが、
デフォルトの ec2-user でないユーザーを足そうとしたらいろいろハマったので覚え書き。

参考: Linux インスタンスでのユーザーアカウントの管理 - Amazon Elastic Compute Cloud

1. 新規ユーザーを足す

今回作るユーザーの名前は new-user とします。

さて、まずは SSH でログインです。

ssh -i ~/.ssh/aws_private_key.pem ec2-user@12.345.67.89

ここの接続に使う pem ファイルの名前や IP アドレスの部分は、自分に合う形に直してくださいね。

su root

で root アカウントに切り替えます。(su でもいいです)

useradd new-user

new-user が足されました。

ls -l /home

と打ってみれば、ec2-usernew-user の2つのフォルダが、/home ディレクトリ上にあることが確認できるでしょう。

ついでに root ユーザーにパスワードを

passwd

というコマンドでパスワードの設定ができます。

new-user のパスワードを設定するには

passwd new-user

と打ちます。

2. new-user でリモートログインできるようにする

まだ ssh -i ~/.ssh/aws_private_key.pem new-user@12.345.67.89 でリモートログインすることはできません。
それをできるようにするのがここでの作業です。

まず root アカウントから new-user アカウントへ切り替えます。

su new-user

これで new-user のホームディレクト/home/new-user が現在いるディレクトリになっているはずです。

このホームディレクトリにファイルを足し、アクセス制限をかけます。

mkdir ~/.ssh
chmod 700 ~/.ssh
touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

そして authorized_keys を編集します。

vi ~/.ssh/authorized_keys

このファイルには、あなたのパソコンの ~/.ssh/id_rsa.pub の中身を貼り付けましょう。
Escキー, :, w, q, Enterキー で保存しつつ終了です。

ここまでおこなえば、SSH 接続でのログインができるようになったはずです。

exit コマンドを何回か使い、EC2 インスタンスからログアウトしてください。

3. ec2-user を削除

さて、最初のログインとユーザー名の部分だけ変えて改めてログインしてみてください。

ssh -i ~/.ssh/aws_private_key.pem new-user@12.345.67.89

ログインできたでしょうか?

ちなみに、new-user でのログインが可能になったのかのテストのためだけでなく、
ec2-user でログインしてる状態では ec2-user アカウントを削除できないため、2. の最後で一度ログアウトしてもらいました。

new-user でログインできましたらまた root アカウントに戻ります。

su root

そして以下のコマンドで、元々あった ec2-user アカウントは削除できます。

userdel ec2-user

4. 新しいユーザーに sudo 権限を付与

new-user でログインできるようになりましたが、

sudo yum update

など、sudo をともなうコマンドは

new-user is not in the sudoers file.  This incident will be reported.

とエラー文が出て実行できません。

そこで new-user を wheel グループに入れます。

参考: sudoユーザーを追加する方法 - Linux入門 - Webkaru

usermod -G wheel new-user

これでまだ終わりでなく、/etc/sudoers をいじります。

参考: さくらVPS+CentOS:自分をsudoユーザに追加してみた

以下のコマンドを実行してください。

visudo

そして root ALL=(ALL) ALL の少し下にある以下を編集します。

# %wheel  ALL=(ALL)       ALL

とコメント化されてますので # を削除し、

%wheel  ALL=(ALL)       ALL

と直します。
これでOKです。

exit コマンドで root アカウントからログアウトし new-user アカウントに戻り、
sudo の付くコマンド、たとえば sudo yum update などが動作するか確認してみてください。


これで、新規ユーザーを追加するやり方について説明おしまいです。