
EC2インスタンスのSSHユーザーをユーザーデータで変更する
この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
結論: 作成したユーザーデータスクリプト
new_user というユーザーでSSH接続できるようにしています。(ec2-userではできなくなります)
#!/bin/bash adduser new_user usermod -G wheel new_user mkdir /home/new_user/.ssh mv /home/ec2-user/.ssh/authorized_keys /home/new_user/.ssh/ chown -R new_user:new_user /home/new_user/.ssh echo "new_user ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/new_user-nopasswd
処理解説
#!/bin/bash
bashを用いたシェルスクリプトであることを明示しています。
adduser new_user
ユーザーを追加するコマンドです。このコマンドによりこのユーザーのホームディレクトリ/home/new_user/が作成されます。
usermod -G wheel new_user
ユーザーの所属グループをwheelに変更します。wheelはec2-userの所属するグループです。sudoコマンドを使える権限を持ちます。
mkdir /home/new_user/.ssh / mv /home/ec2-user/.ssh/authorized_keys /home/new_user/.ssh/
インスタンス作成時に指定したSSH公開鍵の情報はec2-userの .ssh/authorized_keys内に書かれるので、そのファイルを新ユーザー配下へ移動させます。
chown -R new_user:new_user /home/new_user/.ssh
ユーザーデータはroot権限で実行されます。ですので /home/new_user/.ssh の所有者はrootになっています。所有者を接続ユーザーに変更する必要があります。(グループは必ずしも変更する必要はありませんが念のため)
echo "new_user ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/new_user-nopasswd
パスワード無しでsudoコマンドを使えるようにします。
ec2-userと同様の設定です。ec2-userの設定は同一ディレクトリの/etc/sudoers.d/90-cloud-init-usersに記載されています。







