我想更改 AWS 中所有 EC2 实例的公钥。
我仍然有之前的密钥。到目前为止,我创建了一个新的公钥,但我不知道如何将最新的公钥附加到所有 EC2 实例。
有没有什么方法可以做到这一点而不丢失任何实例?
答案1
创建一个所有正在运行的实例的列表。您可能已经有一个了,如果没有,您可以使用类似这样的方法:
aws ec2 describe-instances | jq -r '.Reservations[].Instances[]|select(.State.Name=="running").PrivateIpAddress' > instances.txt
将新的 SSH 密钥复制到所有实例:
for HOST in $(cat instances.txt); do ssh-copy-id -i {new-key}.pem ec2-user@${HOST} done
测试新密钥是否有效,然后可以从每个实例中删除旧密钥
~ec2-user/.ssh/authorized_keys
。同样,这可以通过上面的循环轻松编写脚本instances.txt
。
希望有帮助:)