问题

第三方厂商想要操作EC2实现,所以需要分配一个账号给第三方厂商进行远程登录。

思路

  • 在AWS上面创建新的密钥对
  • 在EC2的Linux服务器上面创建用户和相关目录
  • 将公钥字符串设置到EC2的Linux服务器
    这样,新建的用户就可以使用私钥文件进行远程登录。

解决

创建密钥对

https://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/ec2-key-pairs.html#prepare-key-pair

参考aws文档即可,主要就是创建新的密钥对,并获得私钥文件。

创建新用户

登录到EC2服务器上面:

# 创建新用户
sudo adduser new_user
# 切换到新用户
sudo su - new_user
# 创建.ssh目录
mkdir .ssh
# 授权.ssh目录
chmod 700 .ssh
# 准备ssh认证文件
touch .ssh/authorized_keys
# 授权ssh认证文件
chmod 600 .ssh/authorized_keys

获得公钥字符串

通过aws的私钥文件获得公钥字符串:

ssh-keygen -y -f /path_to_key_pair/my-key-pair.pem

可以参考AWS文档:

https://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/ec2-key-pairs.html#retrieving-the-public-key

复制这个公钥字符串。

设置公钥

回到EC2的服务器上面:

# 切换到新用户
sudo su - new_user
cat >> .ssh/authorized_keys
# 将公有密钥粘贴到 .ssh/authorized_keys 文件中,然后按 Enter。
# 按住 Ctrl+d 退出 cat 并返回到命令行会话提示符。

配置sudo权限

# 为用户new_user设置密码
sudo passwd new_user
# 使用 usermod 命令将用户添加到 wheel 组
sudo usermod -aG wheel new_user

测试远程登录

# 私钥文件远程登录
ssh -i /path_to_key_pair/my-key-pair.pem new_user@public_dns_name_of_EC2_Linux_instance
# 查看当前用户信息
id
uid=1004(new_user) gid=1004(new_user) groups=1004(new_user)

这样就完成了EC2的新用户使用私钥文件远程登录,后期我们还可以吊销这个私钥文件。

参考

Logo

更多推荐