用于连接EC2实例的私钥

时间:2018-12-15 15:31:14

标签: linux amazon-web-services amazon-ec2 user-management aws-iam

在内部,我们不使用公私钥连接到在ESX上启动的Linux VM。

root用户在VM上创建/配置本地用户(到期),并提供对非root用户的访问权限


在AWS控制台上的

管理员用户(IAM)创建一个EC2实例,该实例应由多个非管理员用户(IAM)使用。

管理员用户(IAM)可以使用以下命令连接到EC2实例:

ssh -i /local_to_machine/my_private_key.pem user_name@public_dns_name

管理员用户没有对EC2实例的root访问权限,而是用户名ec2_user(UID = 1000),这是普通用户,但具有sudo访问权限,几乎可以执行所有操作

$ cat /etc/group | grep ec2-user
adm:x:4:ec2-user
wheel:x:10:ec2-user
systemd-journal:x:190:ec2-user
ec2-user:x:1000:

1)IAM管理员用户可以对EC2实例具有root访问权限(UID = 0)吗?

2)作为root用户,多个非root用户可以连接到该实例吗?没有私钥...

2 个答案:

答案 0 :(得分:-1)

我不了解1.,但是我可以为您提供帮助。

在EC2实例上访问root用户/非root用户的权限由密钥决定。

例如,默认情况下,启动实例时AWS给出的.pem文件没有root用户访问权限,为什么?因为此.pem文件的公共密钥未列在可以访问root用户的授权密钥下。

您可以进行以下检查

ssh-keygen -f my_private_key.pem -y > my_public_key.pub (1)
cat my_public_key.pub                                   (2)

使用以下命令将SSH现在进入您的实例:

ssh -i /local_to_machine/my_private_key.pem user_name@public_dns_name (3)

cat ~/.ssh/authorized_keys                                            (4)

至少有1个条目将是您2所获得的pem文件的公开部分。

现在,假设您要授予计算机对EC2实例的直接root访问权限。您要做的是将其公钥添加到根帐户下的authorized_keys文件中:

//Ask them to give you the PUBLIC key
ssh -i /local_to_machine/my_private_key.pem user_name@public_dns_name 
sudo su // changes from current user to root user 
echo "<their public key>" >> ~/.ssh/authorized_keys

现在他们可以通过

直接访问root用户。
  ssh root@public_dns_name 

用于管理具有root / non-root特权的多个帐户。我的建议是将.pem文件保存在自己的手中(以备不时之需),并管理对~./ssh/authorized_keys文件中附加/删除条目的访问。

如果您不想询问他们的公钥,则可以自己创建pem文件

答案 1 :(得分:-1)

  

1)IAM管理员用户可以对EC2实例具有root访问权限(UID = 0)吗?

IAM不负责您的EC2实例操作系统访问,它仅定义对AWS实体(EC2,S3,SQS等)的访问策略。您正在使用预配置的ssh用户和公共密钥而不是通过使用IAM用户凭据连接到EC2实例,因此所有进一步的ssh访问权限配置完全取决于您的职责,与IAM无关。