在内部,我们不使用公私钥连接到在ESX上启动的Linux VM。
root用户在VM上创建/配置本地用户(到期),并提供对非root用户的访问权限
管理员用户(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用户可以连接到该实例吗?没有私钥...
答案 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无关。