如何替换 aws 中的 .pem 文件
How to replace .pem file in aws
情况:所以基本上我有 Ec2 实例并登录到 Ec2 实例,首先我将登录到跳转服务器然后我使用私有 ip 登录到我的实例,我所有的 pem 文件都存储在跳转服务器中并且在私有实例(EC2 实例)中。
我做了什么:我已经用 "PasswordAuthentication No and change it to PasswordAuthentication Yes" 编辑了 sshd-config 文件并创建了类似 "xyz123" 的密码,现在我可以用
登录我的机器了
ssh ubuntu@ipadrrs 和 psswd:xyz123
但这不是为我的开放项目服务。
我在寻找什么:实际上我曾经与我的团队成员共享我的 .pem 文件以访问实例,如果我使用 ip 启用密码,他们仍然可以使用用户名和密码登录,如果他们离开我的组织,如果他们手边有我的 pem 文件,他们仍然可以使用 pem 文件或密码访问我的实例。
避免此问题的最佳方法是什么。
Active directory 会在这方面有所帮助还是 LDAP 会在这方面有所帮助?如果是,如何?
请帮我解决问题。
现在最好的解决办法是使用AWS Systems Manager Session Manager。这不需要 pem 共享。 SSH 直接从浏览器访问,我正在使用它,但我没有发现任何问题。此外,还可以审核整个会话。
否则,请轮换您的密钥对。但我不确定是否有 AWS 方法可以做到这一点。此外,通过使安全组仅对已知 ip 而不是整个 ip 打开来使用最佳实践。
在这里您可以将跳转服务器转换为 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 public,客户端机器将拥有私钥。从客户端计算机连接的命令将是 ssh -i <path-to-private-key> username@BastionPublicIP -p yyyy
下面提到的是在安全组开放的端口:
- 堡垒 - 入站 - yyyy(来自您的 IP)
- 堡垒 - 入站 - 22(来自您的 IP)
- 目的地 - 入站 - 22(来自堡垒机)
我建议您使用 Amazon Linux AMI 作为 SSH Bastion 服务器。
情况:所以基本上我有 Ec2 实例并登录到 Ec2 实例,首先我将登录到跳转服务器然后我使用私有 ip 登录到我的实例,我所有的 pem 文件都存储在跳转服务器中并且在私有实例(EC2 实例)中。
我做了什么:我已经用 "PasswordAuthentication No and change it to PasswordAuthentication Yes" 编辑了 sshd-config 文件并创建了类似 "xyz123" 的密码,现在我可以用
登录我的机器了ssh ubuntu@ipadrrs 和 psswd:xyz123
但这不是为我的开放项目服务。
我在寻找什么:实际上我曾经与我的团队成员共享我的 .pem 文件以访问实例,如果我使用 ip 启用密码,他们仍然可以使用用户名和密码登录,如果他们离开我的组织,如果他们手边有我的 pem 文件,他们仍然可以使用 pem 文件或密码访问我的实例。
避免此问题的最佳方法是什么。
Active directory 会在这方面有所帮助还是 LDAP 会在这方面有所帮助?如果是,如何?
请帮我解决问题。
现在最好的解决办法是使用AWS Systems Manager Session Manager。这不需要 pem 共享。 SSH 直接从浏览器访问,我正在使用它,但我没有发现任何问题。此外,还可以审核整个会话。
否则,请轮换您的密钥对。但我不确定是否有 AWS 方法可以做到这一点。此外,通过使安全组仅对已知 ip 而不是整个 ip 打开来使用最佳实践。
在这里您可以将跳转服务器转换为 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 public,客户端机器将拥有私钥。从客户端计算机连接的命令将是 ssh -i <path-to-private-key> username@BastionPublicIP -p yyyy
下面提到的是在安全组开放的端口:
- 堡垒 - 入站 - yyyy(来自您的 IP)
- 堡垒 - 入站 - 22(来自您的 IP)
- 目的地 - 入站 - 22(来自堡垒机)
我建议您使用 Amazon Linux AMI 作为 SSH Bastion 服务器。