やりたいこと
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接続できるはず