我创建了一个 AWS EC2 实例并共享.pem(每个用户的通用 .pem 文件)文件与公司中的多名员工共享。其中一些人现在已经辞职。我担心他们会再次访问该实例,因为他们有.pem文件。我该如何限制这种情况?有什么方法可以避免将来出现此类问题?我在网上找到了两种解决方案。
一是这。但是对于这个解决方案,有两个问题。第一,我没有静态 IP。第二,如果有人想从其他网络访问它,那是不可能的。
第二种解决方案是这。这看起来不错。但我不知道这是不是最好的解决方案。
关于如何加强安全性,您有什么想法吗?当我进行探索时,我看到了一些术语,例如VPN,并从用户笔记本电脑本身创建 RSA 密钥。因此用户只能从这台笔记本电脑访问实例(我对此没有任何清晰的想法)。
谢谢。
答案1
在团队中管理服务器时,始终创建特定用户。切勿共享单个密钥或密码。也就是说,选择第二个解决方案:创建具有特定密码的特定用户,并撤销实际的 pem 密码(这是默认 ec2 用户的 ssh 密码)
答案2
最好的选择可能是撤销该证书的访问权限并设置单独的服务器用户。您还可以使用防火墙来限制特定 IP 的访问。
我有一个关于 Amazon Linux 的 SSH/SFTP 设置的小教程在我的网站上你可能会发现有用的。关键部分是。
防火墙/安全组
在 AWS 上,您可以使用安全组或网络访问控制列表来指定哪些 IP 可以使用哪些协议进行连接。您可以进行设置,以便只有您的公司 IP 可以通过 SSH 进行连接。这非常快捷且简单。查看说明这里。
我建议使用安全组而不是 NACL,因为我发现它更容易。您可以使用其中一种或两种。
撤销现有密钥对
要撤销密钥对(文档,在“为您的实例添加或替换密钥对”下)
从新密钥对中检索公钥。有关更多信息,请参阅在 Linux 上检索密钥对的公钥或在 Windows 上检索密钥对的公钥。
使用您现有的私钥文件连接到您的实例。
使用您选择的文本编辑器,打开实例上的 .ssh/authorized_keys 文件。将新密钥对中的公钥信息粘贴到现有公钥信息下方。保存文件。
断开与实例的连接,并测试您是否可以使用新的私钥文件连接到您的实例。
(可选)如果您要替换现有密钥对,请连接到您的实例并从 .ssh/authorized_keys 文件中删除原始密钥对的公钥信息。
创建新用户
sudo su
sudo useradd fred
passwd fred
创建密钥
su fred
ssh-keygen -f rsa
mkdir .ssh
touch .ssh/authorized_keys
chmod go-w ~/
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
cat fred.pub >> /home/fred/.ssh/authorized_keys
允许用户登录
vi /etc/ssh/sshd_config
PasswordAuthentication no
AllowUsers ec2-user fred