创建其他的SSH用户

默认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)的内容复制进去:

image-20221008195237542

使用work用户登录到ec2:

ssh -i id_rsa work@xxx.xxx.xxx.xx

image-20221008193555747

此时work用户权限是受限制的,执行sudo命令会失败。

将新用户添加到sudo组

首先设置work用户的密码:

$ sudo passwd work
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully

将用户添加到sudo组。首先退回到ec2-userroot用户,执行:

$ sudo usermod -aG wheel <username>  # amazon linxu 2系统执行这个
$ sudo usermod -aG sudo <username>  # ubuntu系统执行这个

在work用户下可以执行sudo命令:

image-20221008194035119


参考: https://www.bogotobogo.com/DevOps/AWS/aws-adding-a-ssh-user-account-on-linux-instance.php