情况:所以基本上我有Ec2实例并登录到Ec2实例,首先我将登录到跳转服务器,然后使用私有ip登录到我的实例,并且我所有的pem文件都存储在跳转服务器内部和私有中实例(EC2实例)。
我已经完成的工作:我已经使用“ PasswordAuthentication No”编辑了sshd-config文件,并将其更改为PasswordAuthentication Yes,并创建了“ xyz123”之类的密码,现在我可以使用登录到计算机了,
ssh ubuntu @ ipadrrs和psswd:xyz123
但这不提供我的未清项目。
我要寻找的东西:实际上我曾经与团队成员共享.pem文件来访问实例,如果我启用了ip的密码,他们仍然可以使用用户名和密码登录,如果他们离开了我的组织,我的pem文件很方便,他们仍然可以使用pem文件或密码访问我的实例。
什么是避免此问题的最佳方法。
活动目录将在此处提供帮助,而LDAP将在此处提供帮助吗?
请帮助我解决问题。
答案 0 :(得分:0)
现在最好的解决方案是使用AWS Systems Manager Session Manager。这不需要共享pem。直接从浏览器进行SSH访问,我正在使用它,但未发现任何问题。此外,整个会话都可以进行审核。
否则,旋转密钥对。但是我不确定是否有一种AWS方法可以做到这一点。另外,通过使安全组仅向已知的ips开放,而不是对整个ips开放,可以使用最佳实践。
答案 1 :(得分:0)
您可以在此处将跳转服务器转换为SSH堡垒服务器。使用此服务器上的设置iptables规则可以完成相同的操作。下面提到的是可以设置的规则示例:
iptables -t nat -A PREROUTING -d xx.xx.xx.xx -p tcp --dport yyyy -j DNAT --to zz.zz.zz.zz:22
此处xx.xx.xx.xx是SSH堡垒服务器的专用IP。 yyyy是将用于入站访问的端口。 zz.zz.zz.zz将是目标服务器的专用IP。该规则只是意味着您使用端口yyyy SSH进入计算机,这会将流量转发到zz.zz.zz.zz机器上的端口22。
在这种情况下,您只需要在目标计算机(zz.zz.zz.zz)上配置SSH公用,客户端计算机将具有私钥。来自客户端计算机的连接命令为ssh -i <path-to-private-key> username@BastionPublicIP -p yyyy
下面提到的是在安全组中打开的端口:
我建议您将Amazon Linux AMI用于SSH Bastion服务器。