默认EC2的用户是ec2-user
,这个用户权限过大,在企业环境通常为每个使用者创建单独的用户,只能够访问到他们自己的文件和命名空间
本节我们将在EC2上创建一个普通用户,并使用SSH登录,及设置密码,最后将这个用户增加到sudo组
创建一台EC2并登录上去。添加一个新用户work
:
sudo adduser work
为了能够让这个用户远程登录,需要在work
用户home目录下创建一个.ssh
文件夹,然后在里面创建一个authorized_keys
文件,并把public key复制进去。过程如下:
sudo su - work # 切换到新用户,以在对应的home目录有访问权限
mkdir .ssh
# This step is very important; without these exact file permissions, we will not be able to log into this account using SSH
chmod 700 .ssh
cd .ssh
touch authorized_keys
# Note that without these exact file permissions, we will not be able to log into this account using SSH
chmod 600 authorized_keys
在本地电脑上生成一个公钥和私钥:
ssh-keygen -t rsa
# 会生成两个文件,一个id_rsa 这个可以改为xxx.pem, 想当于aws生成的key pair,给用户登录用的。
另一个id_rsa.pub 粘贴到authorized_keys
在EC2上编辑authorized_keys
文件,将公钥(id_rsa.pub
)的内容复制进去:
使用work用户登录到ec2:
ssh -i id_rsa work@xxx.xxx.xxx.xx
此时work用户权限是受限制的,执行sudo命令会失败。
首先设置work用户的密码:
$ sudo passwd work
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
将用户添加到sudo组。首先退回到ec2-user
或root
用户,执行:
$ sudo usermod -aG wheel <username> # amazon linxu 2系统执行这个
$ sudo usermod -aG sudo <username> # ubuntu系统执行这个
在work用户下可以执行sudo命令:
参考: https://www.bogotobogo.com/DevOps/AWS/aws-adding-a-ssh-user-account-on-linux-instance.php