我遇到了一个大问题。实际上,我已经将服务器详细信息提供给第三方扩展支持,其中我向他们提供了 SFTP 主机 xx.xx.xx.xx 和用户名作为 ubuntu 和 PPK 文件。
现在我想取消之前的 PPK 文件或采用其他方法,这样就没有人能利用这些凭据滥用我的服务器了。我的网络管理员对此的回应是负面的。他说现在什么也做不了,如果可能的话,请告诉我这个问题的解决方案。
谢谢!
答案1
您的问题似乎是您已将用于访问服务器的私钥副本提供给第三方。
您可以禁用该私钥的访问权限,但似乎其他人也在使用它,因此您的网络管理员不想这样做。
您确实应该要求第三方生成自己的密钥对并向您提供公钥。然后,您可以允许该密钥存在一小段时间,然后将其删除,这样不会对其他人造成影响。
你能做的并不多。
一个选项是使用 authorized_keys 文件的限制功能来限制对服务器的访问。如果您知道允许访问的 IP 地址,则可以将 OpenSSH 配置为仅允许从这些地址进行访问,即使提供了正确的密钥。
例如
https://debian-administration.org/article/685/Restricting_SSH_logins_to_particular_IP_addresses
您还可以尝试使用 sshd_config 中的“匹配”选项来阻止符合特定条件的用户访问。
底线:永远不要共享私钥。每个用户都应该使用自己的密钥对。
答案2
这个过程会稍微复杂一些。AWS 有完整的页面谈论密钥对
- 公钥存储在
/home/ubuntu/.ssh/authorized_keys
或 ubuntu 下。如果您使用其他操作系统,请查看 AWS 文档以了解公钥的位置。 - 在做任何事情之前先进行快照备份
- 启动备份快照(到另一个IP),进行更改,测试是否可以登录
- 然后在进行更改之前在当前服务器上创建另一个快照
- 做出改变
您可以使用这里的一些指南更改 ec2 实例的密钥对
如果您想进行更改,请务必创建额外的快照,如果您搞砸了,这是最后的后备方案。
更新:实际上这里有一个问题。如果您的 AWS EC2 实例正在使用实例存储(例如 m3、c3),则您无法更改密钥对。您可以做的是从中创建快照,在快照上进行更改,然后从那里启动新实例。