Posted at

AWS EC2に作業用ユーザを追加

More than 1 year has passed since last update.


やりたいこと

AWSのEC2インスタンスを作るとデフォルトでec2-userのみが作られるが、

複数人で同じpem使い回すのも嫌なんで各々に作業用ユーザを作りたい。

$ sudoの際いちいちパスワード入力しないようにしたい。

この記事では例としてhogeユーザを追加し、hoge.pemを使ってssh接続できるようにします


ec2に接続

既に、ec2にssh接続した状態として、ユーザ追加やらいろいろやるためrootに切り替えておきます

[ec2-user@xx.xxx.xxx.xxx ~]$ # ec2-userで接続した状態

[ec2-user@xx.xxx.xxx.xxx ~]$ sudo su # root ユーザに切り替え
[root@xx.xxx.xxx.xxx ec2-user]$


ユーザを追加

[root@xx.xxx.xxx.xxx ec2-user]$ useradd hoge # ユーザ追加

[root@xx.xxx.xxx.xxx ec2-user]$ usermod -G wheel hoge # sudoを使えるグループに所属させる


visudoを編集

wheelグループのユーザがsudoコマンドを入力する際のパスワード入力を省略します

visudoと入力すると編集モードが起動します

[root@xx.xxx.xxx.xxx ec2-user]$ visudo

## Sudoers allows particular users to run various commands as
## the root user, without needing the root password.
##
## Examples are provided at the bottom of the file for collections
## of related commands, which can then be delegated out to particular
## users or groups.
##
## This file must be edited with the 'visudo' command.

~~~ 省略 ~~~

/で検索モードにし、wheelを探します

## Allows people in group wheel to run all commands

# %wheel ALL=(ALL) ALL

## Same thing without a password
# %wheel ALL=(ALL) NOPASSWD: ALL

## Allows members of the users group to mount and unmount the
## cdrom as root
# %users ALL=/sbin/mount /mnt/cdrom, /sbin/umount /mnt/cdrom

## Allows members of the users group to shutdown this system
# %users localhost=/sbin/shutdown -h now

/wheel

# %wheel ALL=(ALL) NOPASSWD: ALLのコメントアウトを外し、escからのwq!で上書き保存します

## Allows people in group wheel to run all commands

# %wheel ALL=(ALL) ALL

## Same thing without a password
%wheel ALL=(ALL) NOPASSWD: ALL

:wq!


追加ユーザ用キーペアを作成

hogeユーザに切り替えてssh-keygenでキーペアを作ります

[root@xx.xxx.xxx.xxx ec2-user]$ su - hoge

[hoge@xx.xxx.xxx.xxx ~]$ ssh-keygen -t rsa

キーペア作成時パスフレーズの入力を求められますが何も入力せずエンターを押します


確認

うまく鍵ファイルができてるか見てみます

pubついてるのが公開鍵、ついてないのが秘密鍵です

[hoge@xx.xxx.xxx.xxx ~]$ cd ~/.ssh

[hoge@xx.xxx.xxx.xxx .ssh]$ ls
id_rsa id_rsa.pub


公開鍵の設定

作成した公開鍵をauthorized_keysに設定し、秘密鍵で認証できるようにします

[hoge@xx.xxx.xxx.xxx .ssh]$ cat id_rsa.pub >> authorized_keys

[hoge@xx.xxx.xxx.xxx .ssh]$ chmod 600 authorized_keys


秘密鍵をローカルにダウンロード

id_rsaファイルをhoge.pemとしてローカルに落とします

ファイル名をhoge.pemに変えてダウンロードでもダウンロードしてからhoge.pemに変えるでもOK

SFTPとかでec2-userで落とそうとするとパーミッションで怒られるのでec2-userのホームに移動するなりしてからダウンロードしてください


ローカルにダウンロードした秘密鍵を使ってSSH接続

以下ローカルからの操作

$ chmod 400 {ダウンロードした秘密鍵のディレクトリ}/hoge.pem # パーミッションの設定

$ ssh -i {hoge.pemのパス} hoge@xx.xxx.xxx.xxx

うまく行ってればこれでhogeユーザとしてSSH接続できるはず