概略
AWSのAMIはデフォルトユーザ名が決まっているので,ID/PW認証のIDが既知なのはアタック耐性が弱くなるので「けしからん!」という方はいるだろう.
# 私の勤務先にも沢山いる
で,Deep Learning AMI (ubuntu)はデフォルトユーザのホームディレクトリに環境があるので,別ユーザを作成して利用しようとするとハマる.
じゃぁどうすればいいかというと
- ユーザ名変更で乗り切る
- ただしホームディレクトリは変更しちゃだめ
前提
デフォルトユーザubuntu
でログインできる状態のDeep Learning AMIインスタンスがあるとする.
手順
-
ユーザ名変更をするためのユーザ(
test
とする)を作成するsudo useradd test
-
test
をsudoerに加えるsudo gpasswd -a test sudo
-
/home/ubuntu/.ssh/authorized_keys
を/home/test/.ssh/authorized_keys
にコピーするsudo -s cp -r /home/ubuntu/.ssh /home/test chown -R test.test /home/test/.ssh
-
test
はパスワードなしでsudo
できないので,パスワードを作る.ここではtestpasswd
とする.
# もしくはvisudo
でパスワードなしの特権ユーザとして設定しても良いが割愛するsudo passwd test Enter new UNIX password: [testpasswd] Retype new UNIX password: [testpasswd]
別窓で
test
に接続できることを確認し,できることを確認したらubuntu
としてログインしている環境から抜ける
# 何の設定が漏れているか分からんので-
test
で接続したターミナルからrootになり,デフォルトユーザubuntu
の名前とグループを変える
(参照:Linuxでユーザーアカウント名、グループ名の変更 - Qiita)
※注意:HOMEを変更すると,source activate ***
で参照するパスが/home/ubuntu/***
であるため,深層学習環境を使えなくなる.HOMEは変更しないこと.sudo -s [sudo] password for test: usermod -l newuser ubuntu groupmod -n newuser ubuntu
-
ユーザ名を変更すると,パスワードなしで
sudo
することができなくなるので,パスワードを作る
#visudo
の設定を変更しても良いと思うが,ちゃんと確認してないので割愛するsudo passwd newuser [sudo] password for test: Enter new UNIX password: [newuserのパスワードを入れる] Retype new UNIX password: [newuserのパスワードを入れる]
-
newuser
でログインし正常に動作することを確認して完了ssh newuser@hogehoge echo $USER newuser pwd /home/ubuntu source activate chainer_p36