[memo] AWS EC2 にsshユーザーを作成してログイン

AWS EC2に新規ユーザーを作成グループに設定する自分用メモ。
環境: Amazon Linux CentOS

[1]ローカル作業

SSHキーの生成

$ cd ~/.ssh
$ ssh-keygen -t rsa 
#ファイルの場所と名前を聞かれるので設定(my_id_rsaなど)

SSH公開キーをアップロード

一旦ec2-userでアップロード(※後ほど生成したユーザーのディレクトリに移動させる手順を踏む)

$ scp -i ~/.ssh/my.pem ~/.ssh/my_id_rsa.pub ec2-user@xx.xx.xx.xx:/home/ec2-user

[2]サーバ作業

ec2-userでログイン

$ ssh -i my.pem ec2-user@xx.xx.xx.xx

ログイン後に

$ ls

しmy_id_rsa.pubが配置されているか確認

ユーザーを追加する

rootユーザーになる

$ sudo su -

ユーザーの追加(※ここでは myname というユーザーを追加する)

$ useradd myname
$ passwd myname
#パスワードを聞かれるので設定

ユーザーにsudo権限を与える場合

$ visudo

すると/etc/sudoersが開くので

root  ALL(ALL) = ALL

みたいな行の下辺りに

myname ALL(ALL) = ALL

を追記。
※visudo で編集したほうが記述エラーが会った場合に警告してくれるので直接sudoresを編集しないほうが良い。

今作ったユーザーに切替

$sudo su - myname

my_id_rsa.pub/home/myname/.sshに移動。名前は authorized_keys にリネームする

$ mkdir ~/.ssh
$ sudo mv /home/ec2-user/my_id_rsa.pub /home/myname/.ssh/authorized_keys

もろもろ権限などを設定

$ cd /home/myname/.ssh
# 所有者の変更
$ sudo chown myname authorized_keys
#グループの変更
$ sudo chgrp myname authorized_keys
#パーミッション設定
$ sudo chmod 600 authorized_keys 
$ cd ../
$ sudo chmod 700 .ssh

ログアウト

$ exit

[3]SSH接続確認

$ ssh -i my_id_rsa myname@xx.xx.xx.xx

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

上記が表示されれば接続成功!

.ssh/confing設定

確認できたら、毎回sshキーを打たなくて良いように、接続設定をssh configに追記

$ vim ~/.ssh/config

Host hogehugapiyo #任意の文字
User myname
HostName xx.xx.xx.xx
Port 22#変えていなければなくてもいい
IdentityFile ~/.ssh/my_id_rsa

ssh config確認

$ ssh hogehugapiyo

[4]別のマシンからも接続したい場合

他のマシンでsshキーを生成し
authorized_keysに公開キーのpubの内容を追記する

$ cd ~/.ssh
$ ssh-keygen -t rsa
# new_id_rsaなど
$ vim ~/.ssh/new_id_rsa.pub

で内容を

#メインマシンでサーバーログイン
$ ssh hogefugapiyo
$ vim /home/myname/authorized_keys

に追記して保存。
ssh-copy-idコマンドを使うと便利らしい

新規ブループを作成してユーザーを追加

サーバーログイン後に、

$ groupadd dev-staff-group

[便利なエイリアス] サーバー側の.bash_profileなどに登録

$ vim ~/.bash_profile
#ユーザーの一覧を出力
alias listusers="cut -d: -f1 /etc/passwd"
#グループ一覧出力
alias listgroups="cut -d: -f1 /etc/group"

グループに関するパーミッション設定

ユーザーの作成したファイルやディレクトリが、他のグループのメンバーも書き込みできるようにumaskで、パーミッションのデフォルト設定をする

$ umask -S #デフォルトパーミッション確認
umask 0022

$ echo umask 0002 >> ~/.bashrc
$ source ~/.bash_profile

上記の設定が、新規ユーザー作成時にも反映されるように/etc/skel/.bashrcに記述を追加しておく。

$ vim /etc/skel/.bashrc
#追記
sudo sh -c "echo umask 0002 >> /etc/skel/.bashrc"

ユーザーをグループに追加

# dev-staff-gropuに追加
    
# イニシャルグループとして追加する場合
$ usermod -g dev-staff-group myname
    
# サブグループとして追加する場合
$ usermod -G dev-staff-group myname

参考

AWS EC2 に SSH 接続する

Linux 基礎知識

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です